Làm cách nào để phát hiện xem một dòng có trống không?Làm thế nào để phát hiện dòng trống trong khi đọc từ đối tượng istream trong C + +?
tôi có:
1
2
3
4
5
Tôi đang đọc này với istream r vậy:
int n;
r >> n
Tôi muốn biết khi tôi đạt được khoảng cách giữa 4 và 5. Tôi cố gắng đọc như char và sử dụng .peek() để phát hiện \ n nhưng điều này phát hiện \ n sẽ xuất hiện sau số 1. Bản dịch của dữ liệu đầu vào ở trên là: 1 \ n2 \ n3 \ n4 \ n \ n5 \ n nếu tôi đúng ...
Vì tôi sẽ thao tác các int, tôi thích đọc chúng như int hơn là sử dụng getline và sau đó chuyển đổi thành int ...
¤ Đọc từng dòng vào một chuỗi 'std ::' bằng cách sử dụng' std :: getline'. Kiểm tra độ dài chuỗi. Sử dụng ví dụ: một 'std :: istringstream' để đọc các mục riêng lẻ từ dòng đầu vào. Điều này cũng sẽ giúp bạn với đầu vào sai. Chúc mừng & hth., –
Ồ, tôi vừa xem đoạn cuối, diễn giải "Tôi không muốn sử dụng cách dễ nhất và hợp lý nhất". Trong trường hợp đó, có hàng triệu cách phức tạp hơn. Chỉ có trí tưởng tượng của một người mới có thể đặt giới hạn vào những cách để làm điều gì đó trong thời trang phức tạp ngớ ngẩn. Chúc mừng, –
Được rồi, bạn không cần phải thô lỗ. Ít nhất tôi đã thử nhiều cách khác nhau trước khi đăng bài này. Tôi chỉ muốn biết nếu có một cách khác.Tôi chỉ học C++ atm. Cảm ơn các bình luận istringstream mặc dù, tôi sẽ cố gắng mà trộn với getline! Bạn có thể đăng nó như là câu trả lời nếu bạn muốn, và tôi sẽ chấp nhận nó. – bb2