未读取 C++ 文件?

标签 c++ io

我想逐行读取一个文件。做了类似的事情

void Parse (string filepath) {
    ifstream sourceFile;
    sourceFile.open(filepath);
    for (string line; getline(sourceFile, line);) {
        cout << "1" << endl;
        cout << line << endl;
    }
}

int main() {
    Parse("C:\\test.txt");

    getchar();
    return 0;
}

然后将一些文本放入C:\test.txt,但是当我运行时,我没有得到任何东西。为什么?甚至不是“1”。如果文件也不存在,我注意到也不异常(exception)。我想这是问题的征兆?

最佳答案

您必须手动检查成功/错误。试试 ifstream::good() :

sourceFile.open(filepath);
if(!sourceFile.good()) {
  // do something

如果不想手动检查,可以启用exceptions :

// call that before open()
sourceFile.exceptions ( ifstream::failbit | ifstream::badbit );

关于未读取 C++ 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13013877/

相关文章:

Lua 文件到数组

java - 使用Java访问类路径中特定文件夹中的文件

ruby - 如何从命令行在 ruby​​ 中打开 STDOUT.sync

c++ - 如何将代码从 Python Pytorch 翻译或转换为 C++ Libtorch

c++ - Ss 类型是什么意思?

VS : new project crashes (same files & settings) 中的 C++ 端口

c - 用模数在 C 中移动字符,输出到文件在一个输入上产生不受支持的文件格式,在另一个输入上产生 txt 文件

c++ - C++:从std::list删除指针

C++11 类型推导与 const char *

android - 将文件保存到内部存储