5 zmiennych w jednej linii pliku
Ostatnio zmodyfikowano 2014-05-21 14:50
AngrySkarpeta Temat założony przez niniejszego użytkownika |
5 zmiennych w jednej linii pliku » 2014-05-21 12:56:29 Witam, Mam pewien problem z programem, potrzebuje odczytać dane z pliku, którego pierwsza linia określa ilość kolejnych linii, natomiast w każdej kolejnej linii mam 4 inty i 1 char. Każda linia musi być kolejnym obiektem klasy Swiatynia, jednak gdy próbuje wywołać którąkolwiek z zmiennych wyskakują mi liczby z kosmosu. Dawno nie bawiłem się obsługą plików, teraz jest mi to pilnie potrzebne do projektu, jeżeli ktoś byłby wstanie wskazać błąd w moim kodzie/rozumowaniu byłbym wdzięczny. Poniżej wstawiam kod #include <iostream> #include <cstdlib> #include <fstream> #include <string> class Swiatynia { public: int NW_x, NW_y, SE_x, SE_y; char Kierunek; Swiatynia() { NW_x = NW_y = SE_x = SE_y = 0; Kierunek = NULL; } Swiatynia( int Nw_x, int Nw_y, int Se_x, int Se_y, char kierunek ) { NW_x = Nw_x; NW_y = Nw_y; SE_x = Se_x; SE_y = Se_y; Kierunek = kierunek; } int get_NW_x() { return this->NW_x; } };
using namespace std; Swiatynia * Tablica[ 100 ]; int main() { int Ile_Swiatyn, Nw_x, Nw_y, Se_x, Se_y; char kierunek; cout << " Program przyjmuje plik o nazwie 'wejsciowe.txt'" << endl; ifstream wejsciowe; wejsciowe.open( "wejsciowe.txt" ); wejsciowe >> Ile_Swiatyn; cout << Ile_Swiatyn; wejsciowe.close(); int i = 0; while( !wejsciowe.eof() ) { wejsciowe >> Nw_x; wejsciowe >> Nw_y; wejsciowe >> Se_x; wejsciowe >> Se_y; wejsciowe >> kierunek; Tablica[ i ] = new Swiatynia( Nw_x, Nw_y, Se_x, Se_y, kierunek ); i++; } cout << Tablica[ 0 ]->Kierunek; cout << "!" << endl; cout << Tablica[ 0 ]->get_NW_x(); return 0; }
|
|
alixir |
» 2014-05-21 14:03:40 Czy aby na pewno zamykasz plik we właściwym momencie? |
|
Monika90 |
» 2014-05-21 14:18:36 Błąd typu, Kierunek to nie jest wskaźnik. while( !wejsciowe.eof() ) { }
|
Skąd wziąłeś pomysł na taki warunek pętli? |
|
AngrySkarpeta Temat założony przez niniejszego użytkownika |
» 2014-05-21 14:50:45 Błąd polegał na za szybkim zamknięciu pliku x.x nie mam pojęcia czemu nie zwróciłem na to uwagi, co do warunku pętli jest to wynik kombinowania na siłę, pierwotnie i obecnie pętla wygląda tak for( int i = 0; i < Ile_Swiatyn; i++ ) , po prostu sprawdzałem czy to nie z winy pętli nie działało. Dziękuje za pomoc, i przepraszam za aż tak głupi błąd. Pozdrawiam |
|
« 1 » |