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

[C++] Odczyt wszystkich znaków z pliku txt

Ostatnio zmodyfikowano 2014-06-14 09:47
Autor Wiadomość
Dwunogalek
Temat założony przez niniejszego użytkownika
[C++] Odczyt wszystkich znaków z pliku txt
» 2014-06-13 19:06:39
Witam,

Mam dwuwymiarową tablicę której elementy bez problemu są zapisywane do pliku txt, niestety pojawił się problem kiedy chcę odczytać te pliki bo dzieje się coś dziwnego, przedstawię na przykładzie:

1) Pracuję na tablicy Tas[20][80]
2) Zapisuję elementy do txt i zamykam program - DZIAŁA
3) Włączam program ponownie i wczytuję tablicę - DZIAŁA
4) Dalej sobie pracuję na tablicy i ponownie zapisuję i wyłączam program
5) Ponownie wczytuję tablicę i.... I coś nie tak bo widać normalnie załadowane elementy z pkt. 1) ale przy okazji porozrzucane widać elementy które modyfikowałem w pkt. 4) a sam plik txt który włączam w notatniku jest pełen porozrzucanych wszędzie element ów tablicy

Wydaje mi się że problem tkwi w funkcji odpowiedzialnej za wczytanie tablicy bo sam zapis działa bezbłędnie
I jako wskazówkę podam że wina chyba tkwi w spacji - bo bez getline spacja była ignorowana ale samo getline też coś musi babrać potem....

C/C++
void Zapisz( string Tap[ 23 ][ 80 ] )
{
    string const nazwaPliku( "kartka.txt" );
    ofstream mojStrumien( nazwaPliku.c_str() );
   
    if( mojStrumien )
    {
        for( short int aa = 0; aa < 23; aa++ )
        {
            for( short int bb = 0; bb < 80; bb++ )
           
                 mojStrumien << Tap[ aa ][ bb ];
           
            mojStrumien << endl;
        }
    }
}

C/C++
void Odczyt()
{
    ifstream mojStrumien( "kartka.txt" );
   
    if( mojStrumien )
    {
        for( short int a = 0; a < 23; a++ )
        {
            for( short int b = 0; b < 80; b++ )
           
                 getline( mojStrumien, Tas[ a ][ b ] );
           
        }
        for( short int aa = 0; aa < 23; aa++ )
        {
            for( short int bb = 0; bb < 80; bb++ )
           
                 cout << Tas[ aa ][ bb ];
           
        }
       
        Tablica( Tas );
    }
    else
    {
        cout << "\n\tERROR: Nie wykryto pliku do odczytu." << endl;
    }
   
}






Okej, mówiąc prościej bez całej otoczki:

Jak zapisać tablicę dwuwymiarową do pliku txt razem z białymi znakami ( spacja ) ? :-)
P-112035
michal11
» 2014-06-13 23:18:36
plik << tablica[ i ][ j ] << " ";
P-112044
Dwunogalek
Temat założony przez niniejszego użytkownika
» 2014-06-14 09:47:18
Sorki, o czym innym myślałem i co innego pisałem ;)

Jak ODCZYTAĆ tablicę dwuwymiarową wraz z białymi znakami ( spacje -> " " )


EDIT
------------------------------------

Już sobie poradziłem ;P

tutaj kod, gdyby ktoś kiedyś miał podobny problem :)

C/C++
for( int a = 0; a < 23; a++ )
{
    int c = 0;
   
    do
    {
        getline( plik, Tab[ a ][ c ] );
        c++;
    } while( c < 80 );
   
}
P-112050
« 1 »
  Strona 1 z 1