std::打印换行时字符串清空

std::string empties when printing new line

本文关键字:字符串 清空 换行 打印 std      更新时间:2023-10-16

我有以下代码示例,

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。

谢谢。

comment =+ 'n';

这真的是

comment = +'n';

一元+实际上是一个无操作(除了操作数可以从 char 转换为 int),但是一个有效的运算符。这意味着您只需将charint分配给std::string,将comment设置为""。

改用operator+=推回std::string

=+不是追加运算符,而是带有一元加号的操作数赋值。

您可以将其更改为 += ,这是字符串的追加运算符。