Слайд 2Пример 1. Функция feof()
FILE *fp;
char c;
fp = fopen("my_text.txt", "rt");
while( !feof(fp) ) // Пока не достигнут конец файла
{
c = getc(fp);
putchar(c);
}
. . .
Слайд 3Предотвращение зацикливания
int k=0;
. . .
while( условие )
{
k++;
if( k>1000) {
write(“k==%d\n”, k);
break; }
// тело цикла
}
Слайд 4Пример 2. Текстовый файл
вывести на экран построчно
char buf[81];
FILE *fp;
fp = fopen("mytext.txt",
“rt");
while(!feof(fp))
{
fgets(buf, 80, fp); // Чтение строки из файла
printf(“%s”, buf);
}
Слайд 5Создать текстовый файл, представленный в виде строк
Точка – окончание ввода
Мама
мыла
раму
.
Слайд 6Пример 3а. Создать текстовый файл, представленный в виде строк
char buf[101];
FILE *fp;
fp =
fopen("mytext.txt", "wt");
scanf(”%s”, buf); // Ввели строку 1-ю строку
while( buf[0] != ‘.’ ) // Точка – окончание ввода
{
fputs(buf, fp); // Запись строки в файл
scanf(“%s”, buf);
}
Слайд 8Пример 3б. Создать текстовый файл, представленный в виде строк
char buf[101];
FILE *fp;
fp =
fopen("mytext.txt", "wt");
scanf(”%s”, buf); // Ввели строку 1-ю строку
while(buf[0] != ‘.’) // Точка – окончание ввода
{
fputs(buf, fp); // Запись строки в файл
putc(‘\n’, fp); // Дописываем в файл символ перевода строки
scanf(“%s”, buf);
}
Слайд 10Пример 4. Функция fgets()
После операции чтения из файла файловый указатель смещается на
количество прочитанных символов.
while(fgets(buf, 80, fp) != NULL)
{
printf(“%s”, buf);
}
Слайд 11Другие возможности
при открытии файла
rt - открыть текстовой файл для чтения;
wt
- создать текстовый файл для записи;
at - дополнить текстовый файл;
rt+ - открыть текстовой файл для чтения и записи;
wt+ - создать текстовый файл для чтения записи;
at+ - дополнить текстовый файл с предоставлением возможности записи и чтения.
Слайд 12Пример 5а.
FILE *f1, *f2;
f1 = fopen(“text1.txt", “rt+");
f2 = fopen(“text2.txt", “rt");
while (fgets(buf, 80, f1) != NULL ); // указатель установился в конце файла
while(fgets(buf, 80, f2) != NULL)
{
fputs(buf, f1); // Запись строки в файл
}
Слайд 13Пример 5б.
FILE *f1, *f2;
f1 = fopen(“text1.txt", “at");
f2 = fopen(“text2.txt", “rt");
while(fgets(buf, 80, f2) != NULL)
{
fputs(buf, f1); // Запись строки в файл
}
Слайд 14Пример 6. Создать файл из
10 целых чисел
FILE *f;
f = fopen(“numbers.num", “wb");
int i, n;
for(i=0; i<10; i++)
{
scanf(“%d”, &n);
fpintf(f, “%6d”, n);
}
Какова максимальная разрядность вводимых чисел?