读取文件.txt C ++

时间:2017-02-18 09:42:59

标签: c++ compare symbols

我应如何阅读spacefile.txt的行并将其记录在vector中? 我有一行由许多单词组成,但我的循环没有看到它并逐个阅读并以这种方式打印:

例如,我在文件中有一个字符串:

Hello, my friends,how are you?

Hello,James, we are fine.

在我的控制台中,我看到了:

Hello,
my
friends
....
fine

这是我的循环:

while(rRecord»str)
{
    lines.push_back(str);
}

我的功能打印出我的话:

void printRecord(int& numStr,struct winsize w,std::vector<std::string>& lines)
{

for (int i = numStr; i < numStr + w.winsize::ws_row-1; i++)
{

   if (i>=lines.size())
   break;
   else
   std::cout « lines[i] « std::endl;

}

    numStr += w.winsize::ws_row;
}

1 个答案:

答案 0 :(得分:0)

要逐行阅读,请使用std::getline,如下所示:

std::string line;
while (std::getline(inFile, line)) {
    lineVector.push_back(std::move(line));
}

std::move表示当vector创建新元素时,它可以&#34;窃取&#34;来自line的内部缓冲区,意味着line现在将是一个空字符串,但会保存额外的分配+副本。

请注意,将getline>>混合通常不是一个好主意,因为>>会在流中留下任何尾随空格,包括换行符,这意味着您会收到意外结果下次尝试getline时。