Я пытаюсь открыть и прочитать из txt-файла, и он должен отображать содержимое в нем, но он отображает только 1 символ в качестве вывода, который является «ÿ».C открыть и прочитать из txt-файла
Вот исходный код:
int main(){
FILE *p;
p=fopen("D:\\eclipse_workspace_cpp\\PL_ODEV2\\inputbookdb.txt","r");
char c;
do{
c = fgetc(p);
printf("%c",c);
}
while(c != EOF);
fclose(p);
return 0;
}
тест возвращаемое значение 'FOPEN()', а не печатать когда вы получаете 'EOF'. –
'char c;' -> 'int c;' Также: проверьте для EOF ** перед ** печать символа. – wildplasser
'fgetc()' возвращает 'int', а не' char'; он может вернуть любое значение 'char' плюс отдельное значение' EOF'. И 'EOF' часто печатается как ÿ (y-умлаут, или U + 00FF LATIN SMALL LETTER Y WITH DIAERESIS). Если ваш простой тип 'char' является неподписанным типом, ваш цикл никогда не закончится. Если ваш тип 'char' вашего плана является подписанным, ваш цикл может закончиться преждевременно. Правильно. Используйте 'int c;' и проверяйте значение перед его использованием (поэтому используйте 'int c; while ((c = getc (p))! = EOF) {...}' вместо цикла 'do ... while'). –