2016-12-06 2 views
1

Я пытаюсь прочитать файл, по-символу, сохранить символ в переменной, проверить, является ли оно определенным значением, и продолжить, пока не будет прочитан весь файл.Чтение из файла и проверка отдельных символов

Вот код, который я получил до сих пор:

Я хочу переменную я приращение, если символ A (49 значения ASCII), но программа выводит следующее: 0000000000.

+0

Возможно, вы имели в виду int x = 0; или int i = 0 ;? Вам нужно инициализировать i до 0 или переключить i на x. – mba12

+0

Извините, что я написал неверную переменную в инструкции печати. Я обновил сообщение, чтобы включить правильную переменную. Он все еще выводит 0000000000, хотя это не то, что я намеревался. – Chrome123

ответ

0

Вы необходимо инициализировать вашу переменную счетчика i.

FILE * fp; 
fp = fopen("doc.txt", "r"); 
int i = 0; /* switch x to i */ 

while (!feof(fp)) { 

    int fc = fgetc(fp); 

    if (fc == 49) { 
    i++; 
    } 
} 
printf("%d", i); 
+0

@ Chrome123 Вы все еще увеличиваете i с i ++ при распечатке x в конце. Выберите либо x, либо i, а затем последовательно используйте эту переменную во всем коде. – mba12

+0

@ Chrome123 Также перемещайте инструкцию печати вне цикла while, чтобы она не выводилась до завершения чтения файла. Сколько символов в вашем входном файле. Вы должны были видеть результат, который соответствовал количеству символов в файле с учетом этой ошибки. – mba12

+0

@ Chrome123 Счастливые помочь. – mba12

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