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() );
    
        为什么不直接将时间写入文件?     

要回复问题请先登录注册