Работа с файлами в C

Текстовые файлы

Рассмотрим работу с текстовым файлом в Си на примере. Создайте на диске С текстовый файл с именем TextFile.txt. Наберите в этом файле такие строки:

String_1 123 String_11, 456
String_2
String_3

Сохраните файл.

А это код программы на C, которая открывает наш файл и считывает из него строки:

Чтоб открыть текстовый файл в C используем функцию fopen:

FILE *pTextFile = fopen(«C:\TextFile.txt», «r»);

первый аргумент функции fopen указывает на файл, а второй говорит, что файл открыт для чтения из него.

Строки считываем с помощью функции fgets:

fgets(cArray, LEN, pTextFile);

первый аргумент функции fgets указвает на массив символов, в котором будут сохранятся полученные строки, второй аргумент — это максимальное количество символов для считывания, третий — наш файл.

После завершения работы с файлом, его надо закрыть:

fclose(pTextFile);

Получаем: File

Русские буквы в строках тоже проходят.

Кстати, эту программу я сделал в Eclipse. Как работать с C/C++ в Eclipse можно посмотреть здесь.

Итак, мы открыли и считали данные из текстового файла.

Теперь научимся программно создавать текстовый файл и записывать в него данные.

Пример:

Создаем текстовый файл для записи в него данных:

FILE *pTextFile = fopen(«C:\TextFileW.txt», «w»);

если файл уже имеется, то он будет открыт, и все данные из него будут удалены.

C-строка cString, и число nVal записываются программой в текстовый файл. cNewLine — это просто переход на новую строку.

Записываем данные в текстовый файл с помощью функции fprintf:

fprintf(pTextFile, «%s%c», cString, cNewLine);

первый аргумент здесь — наш файл, второй — форматная строка, третий и более — нужное для этого формата количество аргументов.

Если нужно открыть файл для записи в конец данных существующего файла (т.е. дописать файл), то тип доступа к файлу обозначим «a»:

FILE *pTextFile = fopen(«C:\TextFileW.txt», «a»);

Добавим к «а» плюс, в этом случае, если файл не существует, то он будет создан:

FILE *pTextFile = fopen(«C:\TextFileW.txt», «a+»);

Открыть существующий файл для записи и чтения можно так:

FILE *pTextFile = fopen(«C:\TextFileW.txt», «r+»);

Открыть существующий (содержимое его стирается) или создать новый файл для чтения и записи:

FILE *pTextFile = fopen(«C:\TextFileW.txt», «w+»);