我有以下代码示例
std::string comment;
for(int i = 0; i<10; i++){
char buff[500];
sprintf_s(buff, "%i %e ", intv, dbl);
comment.append(buff);
comment.append("random");
comment =+ '\n'; //c1
//comment.append("random2"); //c2
}
cout << comment;
现在,如果我运行此代码,输出窗口中不显示任何内容,但如果我注释c1,则显示输出。如果我取消注释c1和c2,则只显示文本“random2”(这只打印一次),
现在我的问题是如何在不破坏代码的情况下为我的代码添加新行。由于性能问题,我无法使用osstream。
感谢。
答案 0 :(得分:5)
comment =+ '\n';
这真的是
comment = +'\n';
一元+
实际上是一个无操作(除了操作数可以从char
转换为int
),但它是一个有效的运算符。这意味着您只需将char
或int
分配给std::string
,将comment
设置为&#39; \ n&#39;。
使用operator+=
代替推回std::string
。
答案 1 :(得分:2)
=+
不是附加运算符,而是使用带有一元加号的操作数赋值。
您可以将其更改为+=
,这是字符串的附加运算符。