ifstream无法打开我的文件

时间:2015-03-18 00:05:56

标签: c++ file ifstream

我正在创建一个使用简单文本文件中的信息的程序。但是,它每次都被我的.fail()函数捕获。该文件名为Test.txt,与程序的.exe文件位于同一文件夹中。我不确定为什么它会一直击中.fail()

这是我的ifstream创建代码,打开文件和我的.fail()循环。

ifstream input;
    input.open(fileNameIn.c_str());
    if(input.fail()){

        cout << "File named " << fileNameIn << " did not open successfully."     << endl;

    }

1 个答案:

答案 0 :(得分:-1)

尝试input.open(strSourceFile.c_str(), std::ifstream::in);,看看是否有帮助。

这是我用于使用c ++读取文件的模式

//
// FileAccessor is just my wrapper around ifstream
// inside the constuctor: 
//    ifstream.open(strSourceFile.c_str(),std::ifstream::in); is called
//
FileAccessor fileAccessor(textFile);

while(fileAccessor.good()) {
    fileAccessor.getline(lineOfText);
    ...
    if(fileAccessor.eof()) break;
}

http://www.cplusplus.com/reference/ios/ios/good/ bool good() const;

Check whether state of stream is good Returns true if none of the stream's error state flags (eofbit, failbit and badbit) is set.

你可以在循环中设置一个标志,看看它是否曾进入循环,如果没有,则检查错误位标志。