问题描述
|
我已经编写了用于执行计算的代码。代码中有一个循环。每个循环对应一个不同的时间。
对于每个循环,我想将一个字符串写入外部文件。该字符串应包含\“ filename_ \”和循环号-例如:
\'fileName_4 \'
问题是它显示为(在下面的行中以\结束):
\'fileName_4
\'
如果有人可以帮助,我将非常感激。这是我尝试过的:
std::string convertedToString;
std::stringstream numberConverted;
storeNumberForConversion << time << endl; // time is a number,like the 4 in the example above
convertedToString = numberConverted.str() += \"\'\";
fileNameHighestTimeStream.open (\"fileName.txt\",ios::out | ios::app );
fileNameHighestTimeStream << \"\'fileName_\" << convertedToString << endl;
fileNameHighestTimeStream.close();
我也尝试过:
storeNumberForConversion << time << endl; // time is a number,like the 4 in the example above
convertedToString = numberConverted.str();
fileNameHighestTimeStream.open (\"fileName.txt\",ios::out | ios::app );
fileNameHighestTimeStream << \"\'fileName_\" << convertedToString << \"\'\" << endl;
fileNameHighestTimeStream.close();
解决方法
std::string convertedToString;
std::stringstream numberConverted;
storeNumberForConversion << time << endl; // time is a number,like the 4 in the example above
convertedToString = numberConverted.str() += \"\'\";
大概这是一个错字,您有:
std::string convertedToString;
std::stringstream numberConverted;
numberConverted << time << endl; // time is a number,like the 4 in the example above
convertedToString = numberConverted.str() += \"\'\";
您将endl
流到了numberConverted
,因此它包含换行符。简单!
根据您在其他地方的评论:
我以为endl会冲洗小溪?如果我不包含endl,是否应该担心冲洗流?如果是这样,没有endl怎么办?
<< endl
和<< \'\\n\' << flush
相同。因此,您仍然可以使用<< flush
进行冲洗,但实际上通常您应该将其留给流对象在自己的时间内处理。
同样怀疑使用+=
(尽管在这种情况下碰巧会产生正确的结果)。
固定:
std::stringstream numberConverted;
numberConverted << time;
std::string convertedToString;
convertedToString = numberConverted.str() + \"\'\";
, endl添加了新行。希望能帮助到你
, storeNumberForConversion << time << endl;
最后应删除remove4ѭ。
storeNumberForConversion << time;