Работа с файлами в языке C

Работа с файлами в языке C

Основные операции с файлами

В языке C работа с файлами позволяет считывать и записывать данные, что необходимо для многих программ. Файлы могут быть текстовыми или бинарными. Мы будем рассматривать работу с текстовыми файлами.

Для работы с файлами используются стандартные функции из библиотеки stdio.h. Основные операции:

  • Открытие файла: fopen()
  • Чтение данных: fscanf(), fgets()
  • Запись данных: fprintf(), fputs()
  • Закрытие файла: fclose()

Пример работы с текстовым файлом

Запись в файл

#include <stdio.h>
            
            int main() {
                FILE *file = fopen("example.txt", "w");  // открытие файла для записи
                if (file == NULL) {
                    printf("Не удалось открыть файл для записи.\n");
                    return 1;
                }
                fprintf(file, "Это первая строка.\n");
                fprintf(file, "Это вторая строка.\n");
                fclose(file);  // закрытие файла
                return 0;
            }

Чтение из файла

#include <stdio.h>
            
            int main() {
                FILE *file = fopen("example.txt", "r");  // открытие файла для чтения
                if (file == NULL) {
                    printf("Не удалось открыть файл для чтения.\n");
                    return 1;
                }
                char line[100];
                while (fgets(line, sizeof(line), file) != NULL) {
                    printf("%s", line);  // выводим каждую строку из файла
                }
                fclose(file);  // закрытие файла
                return 0;
            }

Ошибки при работе с файлами

Пример обработки ошибок

#include <stdio.h>
            
            int main() {
                FILE *file = fopen("example.txt", "r");
                if (file == NULL) {
                    printf("Ошибка: не удалось открыть файл.\n");
                    return 1;  // завершение программы с ошибкой
                }
                fclose(file);
                return 0;
            }