我有一个带有文本的vector of std::string
,它有几行。(字符串)。那些线是矢量的元素。
我选择一个范围的编号,例如:0 and 2
并删除所选范围,并在矢量的开头插入一个新字符串,一个字符串(我已删除)。
But I would like
,当我输入字符串并在同一字符串中输入'\ n'时,to see in the outputting result text which will consist of two lines.
要获取spaces
的字符串,请使用std::getline()
:
std::cout << "Enter insreting text: ";
std::getline(std::cin >> std::ws, text);
在控制台模式下:
Enter insreting text: hello \n Bye
我希望的结果应该是
您好
再见
我可能不会使用std::getline()
获取字符串。有什么提示吗?
答案 0 :(得分:2)
如我的评论中所述,如果您输入
,则std::getline()
捕获的文字
hello \n Bye
是
"hello \\n Bye"
显示为文字。
输出
hello
Bye
您需要将"\\n"
替换为"\n"
。
@Remy已经在他的answer中发布了代码如何执行此操作。
答案 1 :(得分:1)
std::string text;
std::cout << "Enter inserting text: ";
std::getline(std::cin >> std::ws, text);
std::string::size_type pos = text.find("\\n");
while (pos != std::string::npos)
{
text.replace(pos, 2, "\n");
pos = text.find("\\n", pos+1);
}
std::cout << text;