
Обработка текстовых файлов
Файл (от англ. file-досье, документ) - это произвольная последовательность данных некоторой длины, имеющая имя. Другими словами, файл - это поименованное место на внешнем носителе.
Текстовые файлы являются файлами последовательного доступа. Их можно считывать только последовательно, от первой строки до последней.
Запись информации в текстовый файл происходит либо от начала файла (при этом вся информация, находившаяся там ранее, стирается), либо в конец файла (добавление информации в файл).
Назначение команд работы с файлами:
FILE *out, *in; |
Объявление файловых переменных |
out=fopen(fname1,”wt”); |
Открытие файла в режиме записи |
in=fopen(fname2,”rt”); |
Открытие файла в режиме чтения |
out=fopen(fname1,”at”); |
Открытие файла в режиме добавления информации в конец файла |
fscanf(in,”%i”,&x); |
Чтение из файла целого значения |
fscanf(in,”%s”,&str); |
Чтение из файла строки |
fprintf(out,”%s\n”,str); |
Запись в файл строки |
fclose(out); |
Закрытие файла |
if (in=fopen(fname2,”rt”)==NULL) printf(”ошибка открытия файла”); |
Проверка открытия файла |
while (!feof(in)) { fscanf(in,”%s”,&str); printf(”%s\n”,str); } |
Цикл для чтения из текстового файла всех строк |
in=fopen(fname2,”rt”); out=fopen(fname1,”wt”); char ch; ch=getch(); while (!feof(in)) { fscanf(in,”%s”,&str); if (str[1]==ch) fprintf(out,”%s\n”,str); } |
Чтение из одного файла всех строк и запись в другой файл строк, начинающихся на заданную букву |
Пример программы обработки текстовых файлов
# include <stdio.h>
# include <string.h>
void main()
{
FILE *out, *in;
int l;
char s[80];
in=fopen(”H:\\1.txt”,”rt”);
out=fopen(”H:\\2.txt”,”wt”);
while (!feof(in)) // цикл пока не кончится файл
{ fscanf(in,”%s”,&s); // чтение строки из файла
l=strlen(s); // определяем длину строки
if (s[l-1]==’.’) // если строка заканчивается точкой
fprintf(out,”%s\n”,s); // запишем её в другой файл
}
fclose(out);
out=fopen(”H:\\2.txt”,”rt”);
while ( feof(out) )
{ fscanf(out,”%s”,&s);
printf(”%s\n”,s);
}
fclose(in);
fclose(out);
}