2009-10-18 22 views
16

Deseo leer desde cin en C++ desde la posición actual hasta un carácter de nueva línea en una cadena. Los personajes a leer pueden incluir espacios. Mi primera pasada falla porque se detiene en el primer espacio:¿Cómo se lee cin con espacios en blanco hasta un carácter de nueva línea?

string result; 

cin >> result; 

Si se da cin:

(cd /my/dir; doSometing)\n 

El resultado variable sólo obtiene:

(cd 

yo creo que debería estar capaz de usar manipuladores de flujo para lograr esto, pero los skipws no estaban del todo correctos en cuanto a que arroja retornos de carro con espacios y pestañas, y además suena como si se saltaran los espacios en blanco iniciales.

Tal vez deba usar streambuf algo como esto?

streambuf buf; 

cin >> buf; 

Respuesta

21
std::string str; 
std::getline(std::cin, str); 
+3

Nota (ya que solo se quemó por esto): No aparece para trabajar con AIX 5.1. Tuve que usar 'fgets' definido en stdio.h. – Pete

Cuestiones relacionadas