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

В реальной ситуации требуется обрабатывать очень много строк, которые чаще всего на-

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

Работа с файлами имеет несколько особенностей. Во-первых, для чтения строки можно

использовать функцию 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;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.004 сек.