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