Sczytywanie z pliku co 2gą linijkę?

0

Witam
Mam prosty waruenk

 while( getline(file, line)){
			if(isdigit(line[0])){
				file>>a>>b>>c;
				nodes++;
			}else{
				city_names[edges]=line;
				edges++;
			}
		}

Wygląd pliku np
2 1 2
4 42 123
0 3 2
asdf

i teraz gdy chcę zapisać poszczególne cyfry(zmienna a,b,c) zapisuje mi co drugą linijkę. Jak to naprawić?
Plik C
http://wklej.to/xRvxu
plik.txt
http://wklej.to/1dgew

0

Ty się lepiej ortografią zajmij a nie programowaniem...
getline() WCZYTUJE co z wejścia dane. operator>> też WCZYTUJE. Czyli robisz tak:

  • wczytaj linię
  • jeśli początek tej linii to liczba to wczytaj (znów z wejścia!) 3 liczby
  • tak tak, ta początkowo wczytana linia poszła właśnie do kosza...
0

Wyskrobałem takie coś

while(file>>line){
			if(isdigit(line[0])){
				nodes++;
				file>>a>>b;
				cout<<line<<a<<b<<endl;
			}else{
			cout<<line<<endl;
			}
		}

Jednak jeśli nazwa składa się z dwóch wyrazów rozdziela mi je;/ a ja chcę mieć je w jednej lini. Jak ten kod powinien wyglądać?

0
while(getline(file, line)) {
    istringstream streamLine(line);
    int liczba;
    if (streamLine >>liczba) {
        // tu wiadomo, że na początku jest liczba
    } else {
        // tu wiadomo, że na początku jest coś co nie może być zinterpretowane jako liczba
    }
}
0

Dostaje wiadomość: variable `std::istringstream streamLine' has initializer but incomplete type

0

Istnieje coś takiego jak dokumentacja i google, jakbyś wklepał tam istringstream to byś się dowiedział, że ta klasa wymaga dołączenia pliku sstream(#include <sstream>)

1 użytkowników online, w tym zalogowanych: 0, gości: 1