gpt4 book ai didi

C++ 新手 : my loop should CHANGE a string, 然后将字符串打印到文件中。但它正在添加到字符串中

转载 作者:太空狗 更新时间:2023-10-29 20:30:39 25 4
gpt4 key购买 nike

我编写了用于执行计算的 C++ 代码。代码中有一个循环。在每个循环结束时,我想:

1) 获取时间,计算结果。

2) 为文件命名。名称应包含时间。

3) 将文件名打印到外部文件中。每个新循环都应覆盖前一个循环的文件名。

我遇到的第一个问题是无法删除旧文件名。所以当我的计算完成后,名字是(例如):calculationForRestartFile_0.0005476490.004925880.01763170.04375820

代替:calculationForRestartFile_04375820

我已更新此问题以纳入 Mat 的建议。谢谢垫。但是现在我在外部文件中没有得到任何东西。谁能看到我哪里出错了?如果有任何建议,我将不胜感激。

// Above loop:
std::string filename = "calculationForRestartFile_"; // Part of the file name that ALL files should have
ofstream fileNameAtHighestTimeStream;

std::string convertedToString; // This and the line below:
std::stringstream storeNumberForConversion; // For storing a loop number/time as a string

// Inside loop:
storeNumberForConversion << global_time << flush; // Turn the time/loop number into a string that can be added to the file name for a particular loop
convertedToString = storeNumberForConversion.str();

fileNameAtHighestTimeStream.open ("externalFile", ios::out | ios::app );
fileNameAtHighestTimeStream << filename << convertedToString << endl; // Append the time/loop name to the file name and write to the external file
fileNameAtHighestTimeStream.close();

// End loop

最佳答案

问题是这一行在循环内添加到您的 stringstream 中。您永远不会重置其内容。

storeNumberForConversion << global_time << flush;

最简单的做法是将 storeNumberForConversion 的声明移动到您的循环中,以便在您使用它之前将其创建为空。

或者,您可以在格式化操作后重置它。

storeNumberForConversion.str( std::string() );

关于C++ 新手 : my loop should CHANGE a string, 然后将字符串打印到文件中。但它正在添加到字符串中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6320659/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com