[英]std::endl in a string variable?
嗨,我想在字符串中保存多个行。 我有一个字符串logstring,我想保存多重播放错误日志,我以后可以在txt文件或控制台输出中打印。 是否有可能使用endl格式化字符串变量? 我搜索了互联网,但我只找到了
cout << "" << endl;
现在我的想法是:
std::string logstring;
logstring = logstring + "Error Message" + "Number" + "Time + Date";
logstring += endl;
这样的事情是可能的还是没有办法格式化字符串变量? 后来我想将它们打印到log.txt文件中? 是否可以使用这样的字符串?
std::ofstream logfile;
logfile.open(log.txt);
logfile << logstring;
文本文件应如下所示
Error Message 1 Date
Error Message 2 Date
Error Message 3 Date
...
它是否可能像这样或者我必须单独打印所有行?
不要忘记std::endl
添加一个新行并刷新缓冲区。
如果你只想要新的行, \\n
,使用<< '\\n'
将它们添加到字符串中,使用+
或将它们流式传输到流中。
例如,
std::string logstring;
logstring = logstring + "Error Message" + "Number" + "Time + Date";
logstring += '\n';
这是不可能的。 使用logstring += "\\n";
代替
要分隔字符串中的行,您应该使用新的换行符'\\n'
。
例如
std::string logstring;
//...
logstring += "Error Message 1 Date";
logstring += '\n';
logstring += "Error Message 2 Date";
logstring += '\n';
logstring += "Error Message 3 Date";
logstring += '\n';
至于std::endl
那么它是一个声明为的函数
template <class charT, class traits>
basic_ostream<charT, traits>& endl(basic_ostream<charT, traits>& os);
它是一个所谓的流操纵器。 在本声明中举例说明
std::cout << std::endl;
使用operator <<
接受指向函数的指针作为参数。
你不能将一个字符串与函数指针std::endl
,如果你以某种方式这样做就没有意义了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.