Описание основ работы с файлами в языке программирования Си: создание, запись и чтение данных.
Создание и открытие файла
Для работы с файлами используется указатель на файл, объявляемый так:
FILE *file;
Указатель file хранит информацию об открытом файле. Открытие файла осуществляется функцией fopen(). Она принимает два параметра:
- Путь к файлу: Строка с полным или относительным путём. Отсутствующий файл будет создан (при соответствующем режиме). Относительный путь указывает на расположение файла относительно директории проекта.
- Режим открытия: Строка, определяющая режим работы с файлом. Основные режимы:
- "r": Чтение. Файл должен существовать.
- "w": Запись. Существующий файл перезаписывается. Отсутствующий файл создаётся.
- "a": Добавление. Данные добавляются в конец файла. Отсутствующий файл создаётся.
Пример открытия файла test.txt для записи:
file = fopen("test.txt", "w");
Важно: После работы с файлом его необходимо закрыть функцией fclose():
fclose(file);
Не закрытый файл может привести к потере данных и перегрузке системы.
Запись данных в файл
Для записи данных используется функция fprintf(). Она аналогична printf(), но записывает данные в указанный файл.
Пример записи текста:
fprintf(file, "Hello\n");
fprintf(file, "Hi\n");
Режим "w" перезаписывает файл при каждой записи. Режим "a" (append) добавляет данные в конец файла.
Пример добавления текста в режиме "a":
fprintf(file, "\nNew text\n");
Чтение данных из файла
Для чтения данных используется функция fgets(). Она считывает строку из файла и записывает её в указанный массив.
Пример чтения данных:
char line[255];
fgets(line, 255, file);
printf("%s", line);
fgets() считывает построчно. Для чтения всего файла fgets() вызывается в цикле до конца файла (возвращаемое значение fgets() равно NULL). Массив для хранения данных объявляется заранее.
Управление файлами в разных операционных системах
На macOS проблемы с созданием или доступом к файлам могут быть связаны с настройками проекта. В Visual Studio Code, на вкладке «Общие», установите флажок «Использовать собственную директорию для сохранения файлов» и укажите нужную директорию.
Работа с файлами важна во многих программах. Язык Си предоставляет эффективные функции для создания, открытия, записи и чтения данных. Не забывайте закрывать файлы после использования, чтобы избежать проблем.