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. |
|
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. |
|
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. |
|
michalp |
» 2010-06-05 11:19:51 Nie są. |
|
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 ;) |
|
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. |
|
ison |
» 2010-06-05 11:29:31 najprostsza metoda plik: 1 7 5 6
kod: 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 |
|
lenrokskate |
» 2010-06-05 11:31:01 operator >> pomija białe znaki, czyli: 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 |
|
« 1 » 2 3 4 5 |