FILE I/O показывает ошибку компиляции в C
Я пытаюсь записать символ в файл на C, но этот код:
case 4: //If the user types 4 (reset)
FILE * fp;
FILE *fp;
fp = fopen("settings.txt", "w");
fprintf(fp, "a");
int fclose(FILE * fp);
break;
показывает эту ошибку:
fileio.c:72:5: error: expected expression
FILE * fp;
(Да, я знаю, что использовал file * fp
два раза, но без обоих, это показывает еще больше ошибок.)
Как я могу это исправить?
3 ответа
Здесь происходит несколько проблем. Вы не можете объявлять новые переменные в выражении case. Объявите свой fp
вне выключателя. Кроме того, объявите это только один раз, и когда вы закроете его, вызовите функцию вместо написания нового прототипа функции:
fclose(fp);
Есть несколько проблем с этим кодом. Основная проблема, с которой вы сталкиваетесь, заключается в том, что вы не можете объявлять переменные непосредственно в операторе case. Если вам нужно объявить переменные там, вы должны заключить блок кода в curlies, таким образом:
case 4: //If the user types 4 (reset)
{
FILE *fp;
fp = fopen("settings.txt", "w");
fprintf(fp, "a");
fclose(fp);
break;
}
Обратите внимание, что я также исправил ваш вызов fclose() - то, что у вас было неверно.
В close
В заявлении вы снова определяете новый указатель. Попробуй просто
FILE *fp;
fp = fopen("settings.txt", "w");
fprintf(fp, "a");
fclose(fp);