使用linux上的命令行重定向(wiith<)在string中存储文件内容?

时间:2016-05-06 15:48:02

标签: c++ linux vector io

如果我以这种方式运行我的main.cpp:

./main.cpp < file.txt

当我将此输入存储在字符串向量中时,同一行中的每个单词都存储在新行中。如何有效和优雅地将每一行存储在矢量字符串的一个元素中?  例如 我希望它是:

Myvector[0]= "this is just a sentence"

不喜欢:

Myvector[0] ="this"
Myvector[1]="is"
Myvector[3]="just" etc

1 个答案:

答案 0 :(得分:4)

使用std::getline

std::string text_line;
while (std::getline(std::cin, text_line))
{
  my_vector.push_back(text_line);
}

std::getline函数读取,直到遇到换行符,将数据存储到字符串中。

使用std::cin是因为您正在传输文件中的数据。