Введення і виведення рядків

Читання рядка з потоку виконується функцією

char *fgets(

char *s, // покажчик на буфер, що приймає рядок

int n, // гранична кількість читаних символів (звичайно розмір буфера)

FILE *stream

) - повертає покажчик на буфер або NULL при помилці.

Читання припиняється, коли досягнутий кінець рядка або прочитано n-1 символів з файлу. Рядок в буфері замикається нульовим символом. Покажчик файлу переміщається за символи CR-LF.

Запис рядка в потік виконується функцією

char *fputs(

char *s, // покажчик на рядок

FILE *stream

) - повертає покажчик на останній записаний символ або EOF при помилці.

Термінальний символ рядка не копіюється. Символи CR-LF дода-ються у файл.

Завдання. Скопіювати текстовий файл xxx.txt у файл yyy.txt по рядках.

Рішення.

#include <stdio.h>

void main() { const int n = 100;

char buf [n];

FILE *in = fopen (noname00. cpp,r);

FILE *out = fopen (noname00. 000,w);

if (!in) return;

while (!feof(in)) { fgets(buf, n, in);

fputs(buf, out);

}

fcloseall(); }