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

Zapis do pliku tablicy (vector'a)

Ostatnio zmodyfikowano 2009-03-01 16:36
Autor Wiadomość
DejaVu
» 2009-02-28 18:38:32
Czyli wszystko już Ci działa?
P-4566
invisiblekid
Temat założony przez niniejszego użytkownika
» 2009-03-01 14:54:26
Powiedzmy :/
Kompiluje sie, owszem, ale to wcale nie znaczy, że działa.
Jak już pisałem program się uruchamia ale (jeśli coś chce wpisać- bo jeśli wcisnę dwa razy enter to sie zamknie bez błędu) to wyskakuje błąd systemu windows, i mean taki komunikat: "Program przestał działać poprawnie z powodu wystąpienia problemu. System Windows zamknie program i powiadomi Cię, jeśli istnieje dostępne rozwiązanie." Rozwiązanie chyba jednak nie znajduje :P
Dodam jeszcze, że gdy w programie nie używałem vectora (ładowałem cały szyfr od zmiennej long- ale było to z deka ograniczone) to problemu nie było.
Możliwe, że wynika to z zaproponowanego przez Pana rozwiązania: a mianowicie rzutowania vector<int> na char (ja w każdej "komórce" tego vectora mam liczbę trzy-cyfrową), wiec może dlatego się tnie.
Jeśli istnieje jakieś znane Wam rozwiązanie, będę wdzieczny.

/edit: chyba jednak nie zależy od tego rzutowania, w każdym razie nie z faktu, że trzycyfrową liczbę convertuje na char- usunąłem linijkę gdzie dopisuje do zmiennej kodon pozostałe dwie cyfry i tez sie wiesza. DAMN
P-4578
DejaVu
» 2009-03-01 15:23:35
Nic dziwnego, że Ci nie działa. W funkcji coding masz błąd. Zamień:
tab[ i ] = kodon;
 na coś takiego:
tab.push_back( kodon );
P-4579
invisiblekid
Temat założony przez niniejszego użytkownika
» 2009-03-01 15:31:36
no jasne :P
ale człowiek potrafi zrobić głupotę czasem, a potem taki błąd najtrudniej znaleźć. :P
swoją drogą dziwne, że się skompilowało.


Tylko że , teraz powstał następny problem na skutek (tu już chyba jestem pewien) owego rzutowania, a mianowicie wynik jaki się wyswietla w pilku po wpisaniu slowa "pawel" jest taki:
` á  =  ˙  6 
 Nie bardzo przypomina on postać kilku cyferek :/ 
P-4580
DejaVu
» 2009-03-01 15:35:01
To jest oczywiste - dane zapisujesz binarnie, więc czy to będzie liczba 0, 123 czy też 123123124243 to zawsze będzie ona w pliku zajmowała 4 bajty.

/edit:
Co do kompilacji... kompilator informuje o błędach składniowych, a nie o błędach logicznych. Składniowo program był poprawnie napisany, więc się skompilował.
P-4581
invisiblekid
Temat założony przez niniejszego użytkownika
» 2009-03-01 15:38:31
Dobra, zrobiłem taki myk: zmiast:
plik.write(( char * ) & tab[ 0 ], tab.size() * sizeof( int ) );
 dałem
for( int i = 0; i < tab.size(); i++ ) plik << tab[ i ];
 I działa.
Natomiast już z czystej ciekawości chciałbym sie dowiedzieć jak to zrobić tą pierwszą metodą (przy użyciu plik.write()), jeśli of crs się da :D

/edit: chyba sie spóźniłem :P
P-4582
invisiblekid
Temat założony przez niniejszego użytkownika
» 2009-03-01 16:05:46
Myślałem, jak zmienić zpis tych liczb z binarnego na dziesiętny, ale nic narazie nie wymyśliłem, wieć jakby mógł Pan napisać jakieś rozwiązanie byłbym wdzięczny.
Jeśli o mnie chodzi to znam (chyba, że nie pamietam o innych) tylko manipulatory odnaszące się do strumienia cout, a to chyba się tak nie bedzie dało, czyż nie?
P-4583
DejaVu
» 2009-03-01 16:36:11
Napisałem Ci rozwiązanie już dużo wcześniej. Masz cały gotowy program do zapisu i odczytu.
P-4584
1 « 2 »
Poprzednia strona Strona 2 z 2