2011-10-24 31 views
5

Tôi có một file văn bản như thế này:Đọc đến cuối của một dòng trong C++

Sting Một chuỗi 0 12 0 5 3 8
Sting chuỗi Một 8 13 2 0 6 11

Và tôi muốn đếm có bao nhiêu số. Tôi nghĩ rằng đặt cược tốt nhất của tôi là sử dụng trong khi loại chu kỳ với một điều kiện để kết thúc đếm sau đó một dòng bắt đầu nhưng tôi không biết làm thế nào để ngừng đọc ở cuối của một dòng.

Cảm ơn sự giúp đỡ của bạn trước;)

+1

bạn có gì cho đến nay? –

Trả lời

11

Tách dòng input của bạn vào dòng

std::string line; 
while (std::getline(input, line)) 
{ 
    // process each line here 
} 

Để chia một dòng diễn tả bằng lời, hãy dùng một stringstream:

std::istringstream linestream(line); // #include <sstream> 
std::string word; 
while (linestream >> word) 
{ 
    // process word 
} 

Bạn có thể lặp lại điều này cho mỗi từ để quyết định xem nó có chứa một số. Vì bạn không nói rõ liệu số của bạn là số nguyên hoặc không số nguyên, tôi giả sử int:

std::istringstream wordstream(word); 
int number; 
if (wordstream >> number) 
{ 
    // process the number (count, store or whatever) 
} 

Disclaimer: Cách tiếp cận này không phải là hoàn hảo. Nó sẽ phát hiện "số" ở đầu các từ như 123abc, nó cũng sẽ cho phép định dạng đầu vào như string 123 string. Cách tiếp cận này cũng không hiệu quả lắm.

1

Kết thúc dòng được thể hiện bằng ký tự '\ n'. Đặt điều kiện trong vòng lặp trong khi kết thúc khi gặp '\ n'

4

Tại sao bạn không sử dụng một số getline()?

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