std::打印换行时字符串清空
std::string empties when printing new line
我有以下代码示例,
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
),但是一个有效的运算符。这意味着您只需将char
或int
分配给std::string
,将comment
设置为""。
改用operator+=
推回std::string
。
=+
不是追加运算符,而是带有一元加号的操作数赋值。
您可以将其更改为 +=
,这是字符串的追加运算符。
相关文章:
- 如何清除/清空已打开的文件C++
- 使用完数据结构后清空数据结构是一个好习惯吗?
- 这个用于清空链表的代码可以吗?
- Boost::asio::streambuf consumption() 不清空缓冲区
- 如何为C++字符串分配空指针参数?
- 如何从对象的指针清空 std::set?
- 如何从 QStringList 中删除空字符串和空字符串
- "push_back"到"矢量< reference_wrapper<string>>"会导致索引 0 处的字符串为空
- 是否使用示波器队列:: swap违反任何规则来清空std ::队列
- std::vector 从一行代码清空到下一行代码
- Eclipse-如何定义宏(不仅是符号)以清空
- C ++如果我使用引用,为什么要清空我的map<string,string>?
- 清空包含char*的结构数组
- 将STD :: unordered_map内存足迹清空后
- 如何清空C 中的输入流
- 清除或清空 VLA
- 如何清空标准::字符串
- 字符串流缓冲区在 Objective-C++ 中不会清空
- std::打印换行时字符串清空
- C字符串复制失败,无法清空字符串