¿La función open
tiene algún tipo de restricción en cuanto a qué tipo de valor de cadena se pasa?error de compilación: ifstream :: open solo acepta valores de cadena entre comillas "" y no variables de cadena
ifstream file;
string filename = "output.txt";
file.open(filename);
Me trataron de pasar un valor de cadena con una variable de cadena, pero cuando se trata de compilar, el resultado es ...
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
Por otro lado, cuando acabo de pasar una cadena valor entre comillas como "filename.txt", compila bien y funciona bien.
ifstream file;
file.open("output.txt");
¿Por qué es este el caso?
¿Hay alguna manera de resolver este problema?
¿Intentó pasar un puntero a una matriz de caracteres? – neeKo
Ver [¿Por qué (i | o) fstream toma un parámetro const char * para un nombre de archivo?] (Http://stackoverflow.com/questions/5972151/why-does-iofstream-take-a-const-char- parameter-for-a-file-name) –