Sczytywanie z pliku co 2gą linijkę?

Odpowiedz Nowy wątek
2011-08-12 14:12
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

edytowany 1x, ostatnio: mimol, 2011-08-12 14:23

Pozostało 580 znaków

2011-08-12 14:25
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...

Pozostało 580 znaków

2011-08-12 14:37
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ć?

edytowany 1x, ostatnio: mimol, 2011-08-12 14:45

Pozostało 580 znaków

2011-08-12 14:51
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
    }
}

Jeśli chcesz pomocy, NIE pisz na priva, ale zadaj dobre pytanie na forum.

Pozostało 580 znaków

2011-08-12 15:05
0

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

Pozostało 580 znaków

2011-08-12 15:54
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>)


Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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