fstream 变量获取文本文件中的所有行

fstream variable get all lines in a text file

本文关键字:文件 变量 获取 取文本 fstream      更新时间:2023-10-16

我想从文件中的所有行读取,使用fstream变量逐行读取。

例如:

#include <fstream>
fstream fsFile;
fsfile.open("file.txt", ios::in);
while (fsFile.getline(szLine, LINE_SIZE + 1))
{
    cout << szLine << endl;
}

当我想读取所有行,但我得到的行大于LINE_SIZE时,fsFile.bad()返回 true,我明白了。
但是,我想知道fsFile.getline(szLine, LINE_SIZE + 1)怎么会突然回来false
我的意思是函数的返回值是多少?
如果它null,我认为这是为什么null
当它不null它返回什么时?
感谢您的支持。

使用getlinestd::string版本:

std::ifstream fsFile("file.txt");
std::string line;
while(std::getline(fsFile, line)) {
    std::cout << line << 'n';
}

getline(两个版本(返回对流的引用,该引用可转换为bool以便您可以检查其状态(如果读取失败,通常是因为我们点击了文件的末尾(。

此版本的getline绝对更可取,因为通过使用std::string,您完全不必担心内存缓冲区。无需自己创建并记住销毁它,无需担心线条的大小。


另外,请重新考虑您对通常被认为是不良做法的使用:using namespace std;endl