2015-04-17 3 views
0

Итак, моя проблема - это отказ от утверждения. Я не понимаю, что моя программа правильно вводит файл, в массив, затем печатает на экране, но все еще показывает эту ошибку, и я просто не могу понять это. В этой программе будет больше, поэтому, пожалуйста, игнорируйте неиспользуемые функции.Ошибка отладки! (Не нормально)

Мой код выглядит следующим образом:

#include <stdio.h> 
#include <stdlib.h> 
#define MAX 272 

FILE* csis; 

void processFile(char line[]); 
int cipher(); 

int main(void) { 
    char line[MAX]; 

    processFile(line, MAX); 

    fclose(csis); 
    return (0); 
} 
void processFile(char line[]) { 
    FILE* fp; 
    int i = 0; 

    if (!(fp = fopen("congress.txt", "r"))) { 
     printf("File could not be opened for input.\n"); 
     exit(1); 
    } 

    fseek(fp, 0, SEEK_END); 
    fseek(fp, 0, SEEK_SET); 
    for (i = 0; i < MAX; ++i) { 
     fscanf(fp, "%c", &line[i]); 
     printf("%c", line[i]); 
    } 

    fclose(fp); 
} 
int cipher() {} 
+0

покажет нам сообщение об ошибке – pm100

+0

Какая строка вызывает ошибку утверждения? – Cristik

ответ

1

Похоже, вы закрываете неоткрытый дескриптор файла, в будущем вы можете инициализировать файл ручками NULL а затем проверить перед закрытием.

FILE *csis = NULL; 
... 
if (csis) 
    fclose(csis); 
+0

Это не дает ответа на вопрос. Чтобы критиковать или запросить разъяснения у автора, оставьте комментарий ниже своего сообщения - вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно [репутации] (http://stackoverflow.com/help/whats-reputation), вы будете быть в состоянии [прокомментировать любое сообщение] (http://stackoverflow.com/help/privileges/comment). – lshettyl

+0

Я бы это сделал, но я пока не могу, так как у меня нет 50 репутации. –

+0

Алан Я не могу выдвинуть тебя извинения Извините, но это была моя проблема. Так что большое спасибо за исправление моей глупости! : D –

0

я думаю, что вы имеете в виду

fscanf(fp, "%s", &line[i]); 
Смежные вопросы