Ĺadny brzuch
Tworze program, którego zadaniem jest wczytanie 100 znaków (każdy osobno musi być wczytany), następnie wpisanie do pliku określonych liczb, w zależności od znaków.
Najważniejszy fragment kodu:
for(int i = 0; i < 10; i++) // z ekranu... { for(int j = 0; j < 10; j++) { cin.get(w[i][j]); // wczytywanie znaków po jednym } } ofstream to(buf); for(int i = 0; i < 10; i++) // ...do pliku { for(int j = 0; j < 10; j++) { to.seekp(pos); // zmienna pos ma wartość 0 if(w[i][j] == '*'){ to << "1"; } if(w[i][j] == '&'){ to << "2"; } if(w[i][j] == ' '){ to << "0"; } pos = pos + 2; } } to.close();
Program się kompiluje i uruchamia. Wpisuje sto znaków(same gwiazdki) A tu w pliku tylko dużo spacji i jedna jedynka na końcu(a powinno być 100 jedynek)
Nie mogę uzyskać takiego efektu jak chce (Wpisana spacja - w pliku 0,* - 1,& - 2)
//EDIT
Usunąłem seekp i rzeczywiście, prog działa dobrze, ale jest jeszcze jaden problem,
gdy prog natrafi na znak nowej linii, to w tym miejscu w pliku pojawia się spacja.
Poza tym, w pliku jest tylko 90 cyfr (po wpisaniu 100 znakow).
To chyba problem z wczytywanie nowej linii ( wpisując znaki podzieliłem je na 10 wrs)
Tylko jak to ominąć?
Użytkownik ToNieJa edytował ten post 13 sierpień 2005, 18:31
W twoim przypadku nalezy usunac te linijke z seekp. NIe mam zielonego pojecia po co ja tam wsadziles. W tej sytuacji moze ona powodowac wiecej szkod niz pozytku. Z szybkiej analizy kodu widze ze za kazdym razem wyjerzdzasz poza strumien, co moze niekiedy zle dzialac :D
zanotowane.pl doc.pisz.pl pdf.pisz.pl zsf.htw.pl
Najważniejszy fragment kodu:
for(int i = 0; i < 10; i++) // z ekranu... { for(int j = 0; j < 10; j++) { cin.get(w[i][j]); // wczytywanie znaków po jednym } } ofstream to(buf); for(int i = 0; i < 10; i++) // ...do pliku { for(int j = 0; j < 10; j++) { to.seekp(pos); // zmienna pos ma wartość 0 if(w[i][j] == '*'){ to << "1"; } if(w[i][j] == '&'){ to << "2"; } if(w[i][j] == ' '){ to << "0"; } pos = pos + 2; } } to.close();
Program się kompiluje i uruchamia. Wpisuje sto znaków(same gwiazdki) A tu w pliku tylko dużo spacji i jedna jedynka na końcu(a powinno być 100 jedynek)
Nie mogę uzyskać takiego efektu jak chce (Wpisana spacja - w pliku 0,* - 1,& - 2)
//EDIT
Usunąłem seekp i rzeczywiście, prog działa dobrze, ale jest jeszcze jaden problem,
gdy prog natrafi na znak nowej linii, to w tym miejscu w pliku pojawia się spacja.
Poza tym, w pliku jest tylko 90 cyfr (po wpisaniu 100 znakow).
To chyba problem z wczytywanie nowej linii ( wpisując znaki podzieliłem je na 10 wrs)
Tylko jak to ominąć?
Użytkownik ToNieJa edytował ten post 13 sierpień 2005, 18:31
W twoim przypadku nalezy usunac te linijke z seekp. NIe mam zielonego pojecia po co ja tam wsadziles. W tej sytuacji moze ona powodowac wiecej szkod niz pozytku. Z szybkiej analizy kodu widze ze za kazdym razem wyjerzdzasz poza strumien, co moze niekiedy zle dzialac :D