2012-05-05 17 views
28

estoy tratando de leer desde la entrada estándar usando C++, utilizando el códigoleer de la entrada estándar en C++

#include <iostream> 
using namespace std; 

int main() { 
    while(cin) { 
     getline(cin, input_line); 
     cout << input_line << endl; 
    }; 
    return 0; 
} 

cuando i compilar, obtengo este error ..

[[email protected] krisdigitx]# g++ -o capture -O3 capture.cpp 
capture.cpp: In function âint main()â: 
capture.cpp:6: error: âinput_lineâ was not declared in this scope 

cualquier idea cuál falta?

Respuesta

53

No ha definido la variable input_line.

Añadir este:

string input_line; 

y añadir a incluir.

#include <string> 

Aquí está el ejemplo completo. También eliminé el punto y coma después del ciclo while, y debe tener getline dentro del tiempo para detectar correctamente el final de la secuencia.

#include <iostream> 
#include <string> 

int main() { 
    for (std::string line; std::getline(std::cin, line);) { 
     std::cout << line << std::endl; 
    } 
    return 0; 
} 
+0

gracias loganfsmyth..works ahora – krisdigitx

+4

.. Sin fugas de la cadena en el ámbito ambiental: 'para (cadena s; getline (cin, s);) {cout << s << endl; } ' Además, 'return 0' está implícito, no es necesario que lo deletree. –

+1

@krisdigitx Acepte la respuesta si resolvió su problema. – loganfsmyth

Cuestiones relacionadas