注意:我使用的是C ++ 11标准,所以我不明白为什么在附加或不附加c_str()
的情况下这不起作用。
我有以下代码:
// open streams
ifstream in(input);
ofstream out(output);
// get which file to open
in.ignore(INT_MAX, ':'); // we don't need the beginning part
in.ignore(); // remove trailing whitespace
string fileLocation;
getline(in, fileLocation);
out << "Loading: " << fileLocation << endl;
cout << "Loading: " << fileLocation << endl;
// now that we know where the file is, load it:
ifstream file(fileLocation);
从一个看起来模糊不清的文件中读取
File: file.txt
(Subcommands below)
我知道由于终端输出,我正在提取正确的文件名。
无论如何,我注意到流没有正确打开,所以我添加了这个条件来检查:
if ( !file )
{
cout << "File wasn't loaded properly." << endl;
}
果然,我在运行程序时看到了这条消息。
我的问题是:当我对文件位置进行硬编码时,例如: ifstream file("file.txt")
它开放没问题?我该如何正常工作?