ifstream不使用附加C ++ 11和c_str()的变量参数

时间:2017-03-22 04:58:07

标签: c++ c++11 fstream ifstream getline

注意:我使用的是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")它开放没问题?我该如何正常工作?

0 个答案:

没有答案