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

Wczytywanie danych z pliku

Ostatnio zmodyfikowano 2016-06-15 23:45
Autor Wiadomość
markiet
Temat założony przez niniejszego użytkownika
Wczytywanie danych z pliku
» 2016-06-15 20:09:40
Chce wczytać dane z pliku ale niestety po wyswietleniu wyskakuja mi same 0:

int main(int argc, char** argv) {

char Mapa[20][20];
int i, j;

std::ifstream plik;
plik.open("grid.txt");

if (plik.good()== true)
{
for (i=0; i<20; i++)
{
for (j=0; j<20; j++)
{
plik >> Mapa[j];
}
}
plik.close();
}
else
{
cout << "Nie mozna otworzyc pliku";
return - 1;
}

for (i=0; i<20; i++)
{
for (j=0; j<20; j++)
{
cout <<" " << Mapa[j];
}
cout << endl;
}

cin.ignore();
//gerchar();

return 0;
}


A dane w pliku wyglądają tak:

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 5 5 5 5 5 5 5 5 5 0 5 0 0 0 0 0 0 0
0 0 5 5 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0
0 0 0 5 0 0 0 0 0 0 0 0 5 0 0 0 0 0 0 0
0 0 0 5 0 0 5 5 5 5 5 5 5 0 0 0 5 0 0 0
0 0 0 5 0 0 5 0 0 0 0 0 5 0 0 0 5 0 0 0
0 0 0 5 0 0 5 0 0 0 0 0 5 0 0 0 5 5 5 5
0 0 0 0 0 0 0 0 5 5 5 5 5 5 5 5 5 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 5 0 0 0 5 0 0 0
0 5 5 5 5 5 5 5 0 0 0 0 5 0 0 0 0 0 0 0
0 0 0 0 0 0 0 5 0 0 0 0 5 0 0 0 0 0 0 0
0 0 0 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0 0 0
0 5 5 5 5 5 5 5 5 5 0 0 0 0 0 0 0 0 0 0
5 5 0 0 5 0 0 0 0 5 0 0 0 0 0 0 0 0 0 0
0 0 0 0 5 0 0 0 0 5 0 0 5 0 0 0 0 0 0 0
0 0 0 0 5 0 0 0 0 5 0 0 5 0 0 0 0 0 0 0
P-149153
HoulScream
Odpowiedź
» 2016-06-15 21:05:59
Zapomniałeś o drugim wymiarze tablicy przy pobieraniu i wyświetlaniu danych. Rozwiązanie:

C/C++
#include <iostream>
#include <fstream>
using namespace std;

int main( int argc, char ** argv ) {
   
    char Mapa[ 20 ][ 20 ];
    int i, j;
   
    std::ifstream plik;
    plik.open( "grid.txt" );
   
    if( plik.good() == true )
    {
        for( i = 0; i < 20; i++ )
        {
            for( j = 0; j < 20; j++ )
            {
                plik >> Mapa[ j ]; // plik >> Mapa[i][j];
            }
        }
        plik.close();
    }
    else
    {
        cout << "Nie mozna otworzyc pliku";
        return - 1;
    }
   
    for( i = 0; i < 20; i++ )
    {
        for( j = 0; j < 20; j++ )
        {
            cout << " " << Mapa[ j ]; //cout << " " << Mapa[i][j];
        }
        cout << endl;
    }
   
    cin.ignore();
    //gerchar();
   
    return 0;
}
P-149157
carlosmay
» 2016-06-15 23:45:25
C/C++
plik >> Mapa[ j ]; // plik >> Mapa[i][j];
Czytaj między wierszami.
[ i ]
 włącza kursywę i znika bez formatowania kodu.

Czy ścieżka do pliku jest prawidłowa?

PS:
C/C++
cin.ignore();
//gerchar();
... dobre środowiska same zatrzymują działanie działanie programu przed zamknięciem konsoli.
P-149163
« 1 »
  Strona 1 z 1