2011-02-20 66 views
23

Tôi có một số std::string có nhiều dòng và tôi cần đọc từng dòng một. Vui lòng chỉ cho tôi cách thực hiện bằng một ví dụ nhỏ.Đọc một chuỗi theo từng dòng bằng cách sử dụng C++

Ex: Tôi có một chuỗi string h;

h sẽ là:

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

tôi cần phải giải nén Hello there., How are you today?, và I am fine, thank you. bằng cách nào đó.

+0

khi bạn nói 'nhiều link' bạn thực sự có nghĩa là nó hoặc bạn có nghĩa là' lines'? – Petruza

+0

vui lòng xem đoạn cuối của "Làm cách nào để đặt câu hỏi tại đây?" phần [FAQ] (http://stackoverflow.com/faq) – tenfour

Trả lời

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

Có một số cách để làm điều đó.

Bạn có thể sử dụng std::string::find trong vòng lặp cho '\n' ký tự và đế() giữa các vị trí.

Bạn có thể sử dụng std::istringstreamstd::getline(istr, line) (Có lẽ dễ nhất)

Bạn có thể sử dụng boost::tokenize

Các vấn đề liên quan