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

Mapa kafelkowa w pliku

Ostatnio zmodyfikowano 2010-06-05 17:31
Autor Wiadomość
GzZiom
Temat założony przez niniejszego użytkownika
Mapa kafelkowa w pliku
» 2010-06-05 11:06:09
Witam! Już od dawna szukam rozwiązania jak taką mapę w pliku potem odczytać. Znalazłem w google pewien kod ale nie pasuje on do mojego problemu. Chcę aby mapa była zapisana tak:

WYSOKOSC, SZEROKOSC
0,0,0,1,1,1,2,4,5,0,
0,0,0,1,1,1,2,4,5,0,
0,0,0,1,1,1,2,4,5,0,
0,0,0,1,1,1,2,4,5,0
W kursie, w artykule o plikach nie zostało napisane jak pomijać niektóre znaki. Z tego co wiem to da się tak zrobić, tylko nie wiem jak ;). Z góry dziękuję za pomoc.
P-17583
ison
» 2010-06-05 11:12:40
ale po co pomijać jakiekolwiek znaki, sam sobie utrudniasz pracę. Niech zawartość pliku z mapą będzie:

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
musisz mieć tylko ustaloną liczbę kolumn i rzędów.
P-17584
GzZiom
Temat założony przez niniejszego użytkownika
» 2010-06-05 11:18:42
Ok pewnie bym tak zrobił, ale co jeżeli mam więcej niż 10 typów kafelków?

0 0 9 54 23 69 11 30 0 0 1 1 23
0 0 9 54 23 69 11 30 0 0 1 1 23
0 0 9 54 23 69 11 30 0 0 1 1 23
0 0 9 54 23 69 11 30 0 0 1 1 23

Wtedy już są potrzebne przecinki do oddzielania liczb.
P-17585
michalp
» 2010-06-05 11:19:51
Nie są.
P-17586
ison
» 2010-06-05 11:26:09
jesli wczytujesz inta to wczytuje on całą liczbę, jedyne co to musisz mieć stałą liczbę wierszy i kolumn. Funkcję odczytującą to chyba nie problem napisać.
jeśli plik będzie zawieral

42
i wczytasz z niego zmienną typu int to będzie wynosiła 42 a nie 4, więc nie ma problemu ;)
P-17587
GzZiom
Temat założony przez niniejszego użytkownika
» 2010-06-05 11:27:27
Ok, jeżeli tak to powiedzcie mi jak oddzielić liczbę od spacji (bo ta spacja prawie tak samo działa jak przecinek), bo tego nie napisali w kursie.
P-17588
ison
» 2010-06-05 11:29:31
najprostsza metoda
plik:

1 7
5 6
kod:
C/C++
ifstream in( "ścieżka" );
in >> z[ 0 ] >> z[ 1 ] >> z[ 2 ] >> z[ 3 ];

program nie odróżnia spacji od entera(nowej linii)
więc zmienne będą wynosiły: 1,7,5,6
P-17589
lenrokskate
» 2010-06-05 11:31:01
operator >> pomija białe znaki, czyli:
C/C++
fstream plik;
int mapa[ MAXW ][ MAXK ];
plik.open( "plik.txt", std::ios::in | std::ios::out );
for( int w; w < MAXW; w++ )
     for( int k; k < MAXK; k++ ) plik >> mapa[ w ][ k ];


pisane na szybko więc nie wiem czy zadziała, ale popróbuj


#edit #up
wyprzedziłeś mnie :P
P-17590
« 1 » 2 3 4 5
  Strona 1 z 5 Następna strona