Я только начал изучать обработку файлов на C и задался вопросом, могу ли я выполнять математические вычисления, читая ввод из файла, вот код для простого чтения символов и отображения на консоль:Невозможно понять - чтение символов из файлов в C
int main(void)
{
FILE *p;
char a, b, c, ch;
p = fopen("numbers.txt", "a+");
while((ch = getc(p)) != EOF)
{
fscanf(p, "%c %c %c\n", &a, &b, &c);
printf("%c %c %c\n", a, b, c);
}
fclose(p);
return 0;
}
numbers.txt содержит (с пробелом перед каждым символа):
2 + 3
5 + 6
6 + 7
получен выход:
2 + 3
+ 6
+ 7
Я не могу понять, почему вывод первой строки такой же, как ожидалось, но вторая и третья строки имеют отсутствующий символ, хотя новая строка дается после каждого выражения в numbers.txt.
Пожалуйста, проверьте возвращаемое значение 'fopen'. –
1) '' a + "' -> '' r "' 2) 'while ((ch = getc (p))! = EOF) { fscanf (p,"% c% c% c \ n " , & a, & b, &c); '->' while (fscanf (p, "% c% c% c \ n", & a, & b, & c) == 3) {' – BLUEPIXY
Также проверьте возвращаемое значение из' fscanf' –