• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Błąd - odczyt z pliku do dwuwymiarowej tablicy char

42 Warsaw Coding Academy
0 głosów
419 wizyt
pytanie zadane 4 stycznia 2017 w C i C++ przez MatrixBMW Początkujący (360 p.)

Hej, ostatnio powróciłem po długiej przerwie do C++, chciałem wczytać z pliku "mapę" 5x5 z losowymi znakami.

Gdy próbuję wyświetlić zawartość tablicy od [1][1] do [1][5] wszystko jest ok, ale gdy chcę użyć np. [2][1] [3][2]... itp to pokazuje puste pole.

#include <iostream>
#include <fstream>
#include <cstdlib>

using namespace std;

string linia;
int x=1,nr_linii=1;
char map[6][6];
void showmap();

int main()
{
    //loading file
    fstream file;
    file.open("map.txt", ios::in);
    if(file.good()==false){
      cout << "File undetected!";
      exit(0);
      }
    //loading lines from file
    while (getline(file,linia)){
      switch(nr_linii){
       case 1:
           for(int i=1; i<=5; i++){
           map[1][x]=linia[x-1];
           x++;
           }
           break;
       case 2:
           for(int i=1; i<=5; i++){
           map[2][x]=linia[x-1];
           x++;
           }
           break;
       case 3:
           for(int i=1; i<=5; i++){
           map[3][x]=linia[x-1];
           x++;
           }
           break;
       case 4:
           for(int i=1; i<=5; i++){
           map[4][x]=linia[x-1];
           x++;
           }
           break;
       case 5:
           for(int i=1; i<=5; i++){
           map[5][x]=linia[x-1];
           x++;
           }
           break;
      }
    nr_linii++;
    }
    file.close();

    showmap();
    //cout << map[1][1];
    return 0;
}

void showmap()
{
    int y=1, z=1;
    cout << map[2][1] << map[2][2];

}

 

1 odpowiedź

0 głosów
odpowiedź 4 stycznia 2017 przez wanttobeanengineer Obywatel (1,120 p.)

Po każdej pętli ustaw x ponownie na 1.
 

while (getline(file,linia))
{
    switch(nr_linii)
    {// ... }
    nr_linii++;
    x=1;
}

Podobne pytania

0 głosów
1 odpowiedź 2,028 wizyt
0 głosów
1 odpowiedź 1,245 wizyt
pytanie zadane 24 sierpnia 2017 w C i C++ przez Vendari Nowicjusz (150 p.)
0 głosów
1 odpowiedź 1,026 wizyt

93,398 zapytań

142,390 odpowiedzi

322,579 komentarzy

62,756 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

VMware Cloud PRO - przenieś swoją infrastrukturę IT do chmury
...