2011-02-20 33 views
23

Tengo un std::string con líneas múltiples y necesito leerlo línea por línea. Por favor, muéstrame cómo hacerlo con un pequeño ejemplo.Leer una cadena línea por línea usando C++

Ex: Tengo una cadena string h;

h será:

Hello there. 
How are you today? 
I am fine, thank you. 

necesito para extraer Hello there., How are you today?, y I am fine, thank you. de alguna manera.

+0

cuando dice 'múltiples link' en realidad se quiere decir o que quería decir' lines'? – Petruza

+0

, consulte el último párrafo de "¿Cómo hago preguntas aquí?" La sección de [FAQ] (http://stackoverflow.com/faq) – tenfour

Respuesta

49
#include <sstream> 
#include <iostream> 

int main() { 
    std::istringstream f("line1\nline2\nline3"); 
    std::string line;  
    while (std::getline(f, line)) { 
     std::cout << line << std::endl; 
    } 
} 
10

Hay varias maneras de hacerlo.

Puede usar std::string::find en un bucle para '\n' caracteres y substr() entre las posiciones.

Puede utilizar std::istringstream y std::getline(istr, line) (Probablemente el más fácil)

Puede utilizar boost::tokenize

Cuestiones relacionadas