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

[C++] Crash podczas wczytywania pliku

Ostatnio zmodyfikowano 2015-04-01 17:00
Autor Wiadomość
C-Objective
Temat założony przez niniejszego użytkownika
[C++] Crash podczas wczytywania pliku
» 2015-04-01 10:16:12
Witam. Napisałem bardziej udoskonaloną wersję tokenizera. Wszystko działa poprawnie, lecz program działa nie tak jak zaplanowałem. Występuje crash w oznaczonym komentarzem miejscu.
C/C++
#include <iostream>
#include <fstream>
using namespace std;
char * tokens[ 1000 ];

//...
fstream input;
input.open( argv[ 1 ], ios::in );
if( input.good() ) {
    cout << "Opened. Reading..." << endl;
    int i = 0;
    //do{
    // cout<<"Reading line "<<i<<". Please wait."<<endl;
    // input>>tokens[i];
    //}while(input.eof());
    //...

Proszę o pomoc, ponieważ po komunikacie o czytaniu linii '0', "Program tokenizer.exe nie odpowiada".
P-129729
RazzorFlame
» 2015-04-01 10:36:21
} while( input.eof() );
"Wykonuj dopóki jesteśmy na końcu pliku", dodaj negacje:
} while( !input.eof() );

Tu zapewne też nie chciałeś, żeby tak to wyglądało:
for( int as = 0; as == 1000; as++ )
"Wykonuj dopóki 'as' równa się tysiąc"

Poza tym o ile wiem (nie jestem pewny) wczytywanie char* z cin działa inaczej niż byś tego chciał. Użyj tablicy stringów:
C/C++
string tokens[ 1000 ];
P-129736
C-Objective
Temat założony przez niniejszego użytkownika
» 2015-04-01 10:37:50
Działa tak że wczytuje po 1 wyrazie :) I ja właśnie chcę ciachać plik na wyrazy... Wiesz co to Tokenizer?

@up Jak tak z ciekawości popatrzyłem na http://cpp0x.pl/kursy/Kurs-C++/Poziom-4/Wczytywanie-zawartosci-pliku-a-kontrola-bledow/485 to pomyślałem o tym samym :).
Więc jak ma to wyglądać aby działało tak aby zapisało tylko to co przeczytało do pliku :)?
P-129737
RazzorFlame
» 2015-04-01 10:40:39
Wiesz co to Tokenizer?
Ostatnio napisałem tokenizer który podzieli:
int costam = 15 * 1421 + 123 *( 355 + 4 );
Na tokeny: int, costam, =, 15, *, 1421, +, 123, *, (, 355, +, 4, ), ;

Edit:
Zmień:
C/C++
for( int as = 0; as == 1000; as++ ) {
Na
C/C++
for( int as = 0; as < 1000; as++ ) {
P-129738
C-Objective
Temat założony przez niniejszego użytkownika
» 2015-04-01 12:36:15
Zmiana na !input.eof(); nic nie daje. Cały czas w tym miejscu jest CRASH. @up podczas WCZYTYWANIA pliku. Usunę resztę kodu aby was nie dekoncentrować. Lepiej?
P-129752
RazzorFlame
» 2015-04-01 12:52:25
Zmieniłeś char* na string?
P-129755
C-Objective
Temat założony przez niniejszego użytkownika
» 2015-04-01 16:36:12
YYY nie...
P-129807
Brunon3
» 2015-04-01 16:37:45
YYY nie...

No to zmień...

-BD.
P-129808
« 1 » 2
  Strona 1 z 2 Następna strona