我正在创建一个使用简单文本文件中的信息的程序。但是,它每次都被我的.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;
}
答案 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.
你可以在循环中设置一个标志,看看它是否曾进入循环,如果没有,则检查错误位标志。