Я пытаюсь прочитать этот .txt файл:fscanf и переключатель не работает
(1 2 (3 4 (5
с этим кодом:
#include <stdio.h>
int main() {
FILE* f = fopen("teste.txt", "r");
int i;
char j;
while (feof(f) == 0){
fscanf(f, "%c", &j);
switch (j) {
case '(':
printf("%c ", j);
break;
default:
ungetc(j,f);
fscanf(f, "%d", &i);
printf("%d ", i);
break;
}
}
return 0;
}
Выходной сигнал:
(1 2 2 (3 4 4 (5 5
)
и должно быть:
(1 2 (3 4 (5
Что я делаю неправильно?
Возможно хотите 'fscanf (п, "% С", &j);' -. Добавить пространства – chux
Чтобы избежать (fcanf (f, "% c", & j) == 1) '. [Дополнительная информация] (http://stackoverflow.com/questions/5431941/while-feof-file-is -allways-wrong) –
Также рассмотрите вопрос о проверке результата 'fscanf' в случае' default', в противном случае ваша программа будет разбита на столкновение строки с буквами в ней. –