Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何从文件中读取一行文本而不跳过空行?_C++_File_Stream - Fatal编程技术网

C++ 如何从文件中读取一行文本而不跳过空行?

C++ 如何从文件中读取一行文本而不跳过空行?,c++,file,stream,C++,File,Stream,我有一些输入文件如下所示: asdfasfasfas.... asdfasdfasd.... asdfasdf.... asdfsadf... 我希望能够逐行逐行阅读,而不必跳过空白行。我该怎么做?每行中都没有空格,但如果我只是简单地读入并处理为: std::string line; file >> line; Foo(line); 然后它跳过第二行,直接跳到第二行。我不想那样。如何解决这个问题?您可以使用getline逐行读取,而不是使用将跳过空格的operator>

我有一些输入文件如下所示:

asdfasfasfas....

asdfasdfasd....
asdfasdf....

asdfsadf...
我希望能够逐行逐行阅读,而不必跳过空白行。我该怎么做?每行中都没有空格,但如果我只是简单地读入并处理为:

 std::string line;
 file >> line;
 Foo(line);

然后它跳过第二行,直接跳到第二行。我不想那样。如何解决这个问题?

您可以使用
getline
逐行读取,而不是使用将跳过空格的
operator>

std::string line;
std::string line;
while (std::getline(std::cin, line)) {
    std::cout << line << '\n';
}
while(std::getline(std::cin,line)){
std::cout
进行格式化输入,这(除其他外)意味着删除所有空白。对于任何类型的空白(包括换行符),您需要无格式的输入。
get
read
getline
,以及其他一些。

您还可以逐字读取,直到行的末尾,并将其存储在数组中,然后将文件指针移动到下一行,依此类推