2014-01-26 4 views
-2

Всякий раз, когда я пытаюсь прочитать символ из файла и пытаюсь получить к нему доступ, я получаю ошибку. Мой код:Получение ошибки при чтении из файла

while((c=fgetc(f))!=EOF) { 
    if(c == '\n') { 
    str[i]='\0'; 

    Info* inf = new Info(); 
    inf->getInputFromFile(str); 
    if((table->insert(inf))==0) 
    cout<<"exist."<<endl; 
    //delete inf; 

    for(int j =0; j<50;j++) 
    str[j]='\0'; 

    i=0; 

    } else { 
    str[i] = c; 
    i++; 
} 

Но вот когда я когда-нибудь попробовать дать фиктивные такие слова, как: inf->getInputFromFile("Hello"); Я не получаю сообщение об ошибке. Я также не могу найти ошибку, используя debuggin, потому что когда я нажимаю F8 (CodeBlocks IDE), мой отладчик запускает и не останавливает какую-либо строку. то есть я не обнаруживаю ошибок при запуске программы с использованием F8.

Вот содержание входного файла:

int, INTEGER 
myFunction, FUNCTION 
x, IDENTIFIER 
5, NUMBER 
x, Identity 
char, CHARACTER 
fl, FLOAT 
dbl, DOUBLE 
you, MEINTHIS 
dlt, DELETE 
hel, HELLOWORLD 
string, STRING 
+0

так что я должен делать. Использовать EOF рядом с while в случае If? – Developer

+0

Должен ли я использовать вместо этого: while (1) { c = fgetc (f)); if (c == EOF) { break; } – Developer

+0

Где вы получаете сообщение об ошибке? – Xyzk

ответ

Смежные вопросы