/ / Czytanie do końca linii w pliku C ++ - c ++

Czytanie do końca wiersza w C ++ - c ++, file

Mam plik tekstowy taki jak ten:

Żądło Inny ciąg 0 12 0 5 3 8
Żądło Inny ciąg 8 13 2 0 6 11

I chcę policzyć, ile jest liczb. Myślę, że moim najlepszym wyborem jest użycie podczas pisania cyklu z warunkiem zakończenia liczenia, wtedy rozpoczyna się kolejna linia, ale nie wiem, jak zatrzymać czytanie na końcu linii.

Z góry dziękuję za pomoc;)

Odpowiedzi:

11 dla odpowiedzi nr 1

Podziel swoje input strumień w linie

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

Aby podzielić linię na słowa, użyj ciągu znaków:

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

Możesz powtórzyć to dla każdego słowa, aby zdecydować, czy zawiera on liczbę. Ponieważ nie określiłeś, czy twoje liczby są liczbami całkowitymi, czy nie liczbami całkowitymi, zakładam int:

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

Zastrzeżenie: To podejście nie jest idealne. Wykryje „liczby” na początku słów takich jak 123abc, pozwoli również na format wejściowy taki jak string 123 string. Również to podejście nie jest bardzo skuteczne.


4 dla odpowiedzi nr 2

Dlaczego nie używasz a getline()?


1 dla odpowiedzi nr 3

Koniec linii jest reprezentowany przez znak „n”. Umieść warunek w pętli while, aby kończył się, gdy napotka „n”