Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

5 zmiennych w jednej linii pliku

Ostatnio zmodyfikowano 2014-05-21 14:50
Autor Wiadomość
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
C/C++
#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++;
    }
    //Tablica[0]=new Swiatynia(1,2,3,4,'k');
    cout << Tablica[ 0 ]->Kierunek;
    cout << "!" << endl;
    cout << Tablica[ 0 ]->get_NW_x();
    return 0;
}
P-110548
alixir
» 2014-05-21 14:03:40
Czy aby na pewno zamykasz plik we właściwym momencie?
P-110555
Monika90
» 2014-05-21 14:18:36
Kierunek = NULL;
Błąd typu, Kierunek to nie jest wskaźnik.

C/C++
while( !wejsciowe.eof() )
{
}
Skąd wziąłeś pomysł na taki warunek pętli?
P-110559
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
P-110565
« 1 »
  Strona 1 z 1