ошибка компиляции: ifstream::open принимает только строковые значения в кавычках "", но не строковые переменные

Есть ли у функции open какое-то ограничение на то, какое строковое значение передается?

ifstream file;
string filename = "output.txt";
file.open(filename);

Я пытался передать строковое значение с помощью строковой переменной, но при попытке компиляции результат...

agent.cpp:2:20: error: ofstream: No such file or directory
agent.cpp: In function ‘std::string readingline(std::string)’:
agent.cpp:11: error: aggregate ‘std::ifstream file’ has incomplete type and cannot be     defined
agent.cpp: In function ‘int main()’:
agent.cpp:44: error: aggregate ‘std::ofstream writefile’ has incomplete type and cannot be defined

С другой стороны, когда я просто передаю строковое значение в кавычках, например "filename.txt", оно прекрасно компилируется и работает.

ifstream file;
file.open("output.txt");

Почему так происходит?

Есть ли способ решить эту проблему?

5
задан Jason Kim 18 December 2011 в 03:47
поделиться