Tôi có một văn bản trong một đối tượng chuỗi std ::. Văn bản bao gồm một số dòng. Tôi muốn lặp qua dòng văn bản bằng dòng sử dụng STL (hoặc Boost). Tất cả các giải pháp tôi đưa ra dường như là xa thanh lịch. Cách tiếp cận tốt nhất của tôi là phân tách văn bản ở ngắt dòng. Có một giải pháp thanh lịch hơn không?C++: Làm thế nào để lặp qua một văn bản trong một std :: chuỗi dòng phù hợp với STL?
UPDATE: Đây là những gì tôi đang tìm kiếm:
std::string input;
// get input ...
std::istringstream stream(input);
std::string line;
while (std::getline(stream, line)) {
std::cout << line << std::endl;
}
tôi nghĩ rằng tôi đã thử nó. Tôi đã nhận được một lỗi biên dịch và ném nó đi. Để nhanh chóng!
Bạn đang tìm kiếm "thanh lịch hơn" như C# 's foreach "foreach (chuỗi dòng trong dòng)"? Chính xác thì bạn đã thử gì. C++ có thể cảm thấy 'không thích hợp' nếu bạn quen với các ngôn ngữ bậc cao hoặc năng động, nhưng trong C++ "thanh lịch" không bao giờ được trao cho bạn, bạn thường phải tự mình lập trình. – Crisfole
Nó có thể không được * khá * một bản sao chính xác, nhưng bạn cũng có thể muốn xem: http://stackoverflow.com/questions/1567082/how-do-i-iterate-over-cin-line-by-line -in-c –
Sẽ tốt hơn nếu bạn trả lời câu hỏi của riêng mình thay vì cập nhật nó. Việc cập nhật có thể gây nhầm lẫn cho người đọc trong tương lai ... – Wolf