Функции ввода/вывода строки символов в файл
1. Чтение текстовой строки из файла.
char* fgets(char *str, int n, FILE *stream);
Читает до перевода строки или n-1 байт и к концу строки присоединяет 0 байт, если прочитан \n.
void main(void){
FILE*in;
char string[80];
in=fopen("story", "r");
while(fgets(string,80, in)!=0)
puts(string);
}
Считывается до конца строки '\n' или 80-1 байт. При встрече EOF возвращает 0.
2. Запись текстовой строки в файл
int fputs(char *str,FILE *stream);
y=fputs(“Это строка”,in);
y-целое число, которое устанавливается в EOF, если fputs() встре-чает EOF или ошибку. fputs не добавляет '\n' в конeц строки.
Все эти функции работают с текстовыми файлами и называются функциями последовательного доступа к файлу. Указатель внутри файла перемещается автоматически при чтении или записи.
Существуют функции прямого доступа к файлу.
Функции управления указателем в файле
Функция позволяет работать с файлом как с массивом. Достигать любого байта.
int fseek(FILE *stream, смещение, start)
Возвращает число типа int:
0 - если все хорошо;
-1 - ошибка.
Смещение – это количество байт на которое нужно сместить указатель по файлу с +(вперед), -(назад);
start - код начальной точки:
SEEK_SET или 0 – от начала файла;
SEEK_END или 2 – от конца файла;
SEEK_CUR или 1 – от текущего положения курсора.
fseek(in,0,0) - установить курсор на начало файла.
long int ftell(FILE *stream)- возвращает текущее положение курсора в файле.