读取文件.txt C++

Read a file .txt C++

我应该如何从 file.txt 中读取带有 space 的行并将其记录在我的 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;
}

阅读line-by-line,使用std::getline,像这样:

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

std::move表示当vector创建新元素时,它可以"steal"来自line的内部缓冲区,意思是line现在将是一个空字符串,但节省了额外的分配+副本。


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

时出现意外结果