Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> Язык C

Ввод-вывод файлов в C: создание, открытие, чтение, запись и закрытие файлов

Обзор управления файлами в C

В C стандартная библиотека stdio.h предлагает полный набор функций для работы с постоянными данными на диске. Освоив эти инструменты, вы сможете надежно создавать, читать, записывать и закрывать файлы, обеспечивая целостность данных и стабильность программы.

Ключевые функции работы с файлами

ФункцияНазначение
fopen()Открыть существующий файл или создать новый.
fclose()Закрыть открытый файл и освободить ресурсы.
fprintf()Записать форматированный текст в файл.
fscanf()Прочитать форматированные данные из файла.
getc()Получить один символ из файла.
putc()Записать один символ в файл.
fgets()Прочитать строку целиком в буфер.
fputs()Записать строку в файл без форматирования.
fseek()Переместить указатель файла в указанную позицию.
ftell()Получить текущую позицию указателя файла.
rewind()Сбросить указатель файла в начало.

Режимы файлов

РежимОписание
"r"Открыть для чтения; ошибка, если файл не существует.
"w"Открыть для записи; усекает существующий или создает новый.
"a"Открыть для дозаписи; записи добавляются в конец файла.
"r+"Открыть для чтения и записи с начала.
"w+"Открыть для чтения и записи; усекает существующий файл.
"a+"Открыть для чтения и записи; дозаписывает новые данные.

Создание файла

Чтобы создать или открыть файл, сначала объявите указатель на файл, затем вызовите fopen() с нужным именем файла и режимом:

FILE *fp; fp = fopen("data.txt", "w"); 

Если файл не существует, fopen() создает его. Если существует, режим определяет, сохраняется ли содержимое или перезаписывается.

Можно также указать абсолютный путь:

fp = fopen("D:/data.txt", "w"); 

Иллюстрации шага создания файла:

Ввод-вывод файлов в C: создание, открытие, чтение, запись и закрытие файлов

Ввод-вывод файлов в C: создание, открытие, чтение, запись и закрытие файлов

Закрытие файла

После завершения всех файловых операций всегда вызывайте fclose() для освобождения дескриптора файла и сброса буферов:

fp = fopen("data.txt", "r"); ... fclose(fp); 

Функция возвращает 0 при успехе и EOF при ошибке. Хотя операционная система автоматически закрывает файлы при выходе из программы, явное закрытие считается лучшей практикой.

Запись в файл

При записи не забывайте явно добавлять символы новой строки (\n) там, где нужно. Ниже самые распространенные функции записи:

Пример: fputc()

#include <stdio.h> int main() { int i; FILE *fptr; const char *str = "Guru99 Rocks\n"; fptr = fopen("fputc_test.txt", "w"); for (i = 0; str[i] != '\n'; i++) { fputc(str[i], fptr); } fclose(fptr); return 0; } 

Файл fputc_test.txt содержит текст:

Ввод-вывод файлов в C: создание, открытие, чтение, запись и закрытие файлов

Пример: fputs()

#include <stdio.h> int main() { FILE *fp = fopen("fputs_test.txt", "w+"); fputs("This is Guru99 Tutorial on fputs,", fp); fputs("We don't need to use for loop\n", fp); fputs("Easier than fputc function\n", fp); fclose(fp); return 0; } 

Результирующий файл fputs_test.txt:

Ввод-вывод файлов в C: создание, открытие, чтение, запись и закрытие файлов

Пример: fprintf()

#include <stdio.h> int main() { FILE *fptr = fopen("fprintf_test.txt", "w"); fprintf(fptr, "Learning C with Guru99\n"); fclose(fptr); return 0; } 

Результирующий файл fprintf_test.txt:

Ввод-вывод файлов в C: создание, открытие, чтение, запись и закрытие файлов

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

Три основные функции чтения данных:

Ниже приведена полная демонстрация, читающая fprintf_test.txt всеми тремя методами:

#include <stdio.h> int main() { FILE *fp; char buffer[50], c; fp = fopen("fprintf_test.txt", "r"); printf("----read a line----\n"); fgets(buffer, 50, fp); printf("%s\n", buffer); fclose(fp); fp = fopen("fprintf_test.txt", "r"); printf("----read and parse data----\n"); char str1[10], str2[2], str3[20], str4[2]; fscanf(fp, "%s %s %s %s", str1, str2, str3, str4); printf("Read String1 |%s|\n", str1); printf("Read String2 |%s|\n", str2); printf("Read String3 |%s|\n", str3); printf("Read String4 |%s|\n", str4); fclose(fp); fp = fopen("fprintf_test.txt", "r"); printf("----read the entire file----\n"); while ((c = fgetc(fp)) != EOF) { putchar(c); } fclose(fp); return 0; } 

Вывод программы:

----read a line---- Learning C with Guru99 ----read and parse data---- Read String1 |Learning| Read String2 |C| Read String3 |with| Read String4 |Guru99| ----read the entire file---- Learning C with Guru99

Ввод-вывод файлов в C: создание, открытие, чтение, запись и закрытие файлов

Интерактивный посимвольный ввод-вывод с getc и putc

Этот минимальный пример демонстрирует чтение пользовательского ввода, запись в файл и чтение обратно:

#include <stdio.h> int main() { FILE *fp; int c; printf("File Handling\n"); fp = fopen("demo.txt", "w"); while ((c = getchar()) != EOF) { putc(c, fp); } fclose(fp); printf("Data Entered:\n"); fp = fopen("demo.txt", "r"); while ((c = fgetc(fp)) != EOF) { putchar(c); } fclose(fp); return 0; } 

Пример запуска:

Ввод-вывод файлов в C: создание, открытие, чтение, запись и закрытие файлов

Ввод-вывод файлов в C: создание, открытие, чтение, запись и закрытие файлов

Выводы

Язык C

  1. Мастерство C# переменных и примитивных типов данных: полное руководство
  2. Ввод-вывод в C: scanf() и printf() — подробное руководство
  3. Работа с файлами в C: мастерство ввода-вывода с fopen, fprintf, fread и fseek
  4. Работа с файлами в Python: открытие, чтение, запись и управление
  5. Apacer запускает глобальные высокопроизводительные флеш-карты CV110-SD и CV110-MSD
  6. Apacer представляет промышленные SSD SV250: чтение 560 МБ/с, запись 520 МБ/с
  7. acceed EDAM-4200: Интегрированные I/O-модули для масштабируемой надежной передачи данных
  8. Сборка кабеля развязки I/O и адаптера для макетной платы Raspberry Pi — пошаговое руководство
  9. Освоение ввода-вывода файлов в C: создание, открытие и управление файлами
  10. Заголовочные файлы в C: типы, подключение и лучшие практики