Работа с файлами
В реальной ситуации требуется обрабатывать очень много строк, которые чаще всего на-
ходятся в файле, причем их количество заранее неизвестно. Однако, если для обработки одной строки нам не требуется знать остальные, можно использовать способ, который мы применяли при работе с массивами данных неизвестного размера. В данном случае мы будем читать очередную строку из файла, обрабатывать ее и сразу записывать в выходной файл (если это требуется).
Работа с файлами имеет несколько особенностей. Во-первых, для чтения строки можно
использовать функцию fscanf. Однако эта функция читает только одно слово и останавливается на первом пробеле. Поэтому функция fscanfприменяется тогда, когда надо читать файл по словам.Вот пример чтения слова из открытого файла с указателем fp:
Если надо читать всю строку с пробелами, используют функцию fgets. Она принимает
три параметра:
• имя символьной строки, в которую записать данные;
• максимальную длинуэтой строки; функция не допускает выхода за границы строки;
если строка в файле длиннее, чем можно записать в память, читается только начальная
часть, а остальное – при следующих вызовах fgets;
• указатель на файл.
Если функция fgetsне может прочитать строку из файла (например, если нет больше строк),то она возвращает в качестве результата специальное значение NULL. Это свойство можно использовать для обработки ошибок и прекращения ввода данных.
#include <stdio.h>
Main()
{
char s[80];
FILE *fp;
fp = fopen ( "input.dat", "r" );
if ( NULL == fgets ( s, 80, fp ) )
printf ( "Не удалось прочитать строку" );
Else
printf ( "Перваястрокафайла - %s", s );
Дата добавления: 2015-10-05; просмотров: 544;