Я попытался запустить следующую программу:
#include <stdio.h>
#include <stdlib.h>
int main(){
FILE *datei = fopen("employees.txt", "w");
fprintf(datei, "Anna\n");
fclose(datei);
return 0;
}
Обычно, если я правильно понял, файл .txt должен генерироваться в той же папке, что и мой файл C, в случае, если файл не существует в этой папке, или перезаписывать его, если он существует. Однако сколько бы раз я ни запускал программу, ни один файл не создается и не перезаписывается, если он существует.
Затем я подумал, что проблема в том, что мой *.c
файл сохранен в облаке, поэтому я сохранил его прямо на своем компьютере — результат тот же.
Я приступил к вставке абсолютного пути:
FILE *datei = fopen("C:\\Users\\für\\JustCoding", "w");
fprintf(datei, "Anna\n");
Тот же результат.
Я перезагрузил свой компьютер (Windows 11 Home) и повторил вышеупомянутые шаги; ничего.
Теперь я почти уверен, что это не имеет ничего общего с ошибками компиляции, поскольку мой терминал показывает мне, что программа была выполнена, поэтому я сейчас нахожусь в режиме ожидания.
Как мне это решить?
Этот код правильный и должен создать (или перезаписать) файл с именем «employees.txt» в текущем рабочем каталоге вашей программы.
Проблема, с которой вы столкнулись, вероятно, связана с одним из этих факторов:
Чтобы учесть эти возможности, давайте изменим ваш код, включив в него проверку ошибок и распечатав текущий рабочий каталог:
#include <stdio.h>
#include <stdlib.h>
#include <direct.h>
int main() {
char cwd[1024];
if (_getcwd(cwd, sizeof(cwd)) != NULL) {
printf("Current working directory: %s\n", cwd);
} else {
perror("getcwd() error");
return 1;
}
FILE *datei = fopen("employees.txt", "w");
if (datei == NULL) {
perror("Error opening file");
return 1;
}
fprintf(datei, "Anna\n");
fclose(datei);
printf("File 'employees.txt' should have been created or overwritten.\n");
return 0;
}