我有一些输入文件,看起来像这样:
asdfasfasfas....
asdfasdfasd....
asdfasdf....
asdfsadf...
我希望能够逐行读取整行,而不跳过中间的空白行。我该怎么做呢?每行都没有空格,但是如果我简单地读入并处理为:
std::string line;
file >> line;
Foo(line);
然后跳过第二行,直接跳到第二行。我不希望这种事发生。我该如何解决这个问题?
您可以使用getline
逐行读取,而operator>>
将跳过空格。
std::string line;
while (std::getline(std::cin, line)) {
std::cout << line << 'n';
}
读取每一行,每次一行,直到文件结束,并在屏幕上显示它们。
默认情况下,std::istream::operator>>
做格式化输入,这(除其他事项外)意味着所有空白被删除。对于任何类型的空白(包括换行符),您需要未格式化的输入。get
, read
, getline
,和一些其他的
您也可以一个字符一个字符地读取,直到行尾,并将其存储在数组中,然后将文件指针移动到下一行,以此类推。