以编程方式输入新行

时间:2018-01-17 19:51:06

标签: c++ string

我有一个带有文本的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()获取字符串。有什么提示吗?

2 个答案:

答案 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;

Live Demo