如何解决C ++新手:我的循环应更改字符串,然后将字符串打印到文件中但是它添加到字符串
| 我已经编写了用于执行计算的C ++代码。代码中有一个循环。在每个循环的结尾,我想: 1)获取时间,计算结果。 2)为文件命名。名称应包含时间。 3)将文件名打印到一个外部文件中。每个新循环应覆盖前一个循环的文件名。 我遇到的第一个问题是我无法删除OLD文件名。因此,当我完成计算时,名称为(例如): CalculationForRestartFile_0.0005476490.004925880.01763170.04375820 代替: CalculationForRestartFile_04375820 我已经更新了此问题以纳入Mat的建议。谢谢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() );
, 为什么不直接将时间写入文件?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。