Демонстрация вывода в стандартный файл для ошибок

Введите строку ( до 49 символов )

Введем строку:

Технический университет

Подчеркнутая строка будет записана в файл FAL.F с помощью функции fputs, первый параметр которой ( str ) – идентификатор записываемой строки, а второй (FL)– указатель на соответствующий файл.

Чтение строки обеспечивает функция fgets, первый параметр которой ( str ) – идентификатор читаемой строки, второй – его максимальная длина и третий ( FL) – указатель на соответствующий файл.

В результате на экране появляется строка:

str = “ Технический университет ”

В строке 19 символов, поскольку 20-й символ – это заключительный нуль (‘\0’).

Рассмотрим пример создания файла и чтения из него информации по определенному условию. Информация, входящая в файл: Ф.И.О. студента, группа, размер стипендии. Требуется получить информацию о студенте, фамилия которого будет введена.

Программа приведена на рисунке 1. В начало программы необходимо поместить процедуру #include < string.h >, так как в программе будут применены функции, работающие со строковыми переменными. Для удобства работы в программе сразу за описанием типа переменных применен оператор очистки экрана – clrscr (). Создание файла происходит в цикле while. При создании файла student.dat используется признак окончания ввода информации, обозначенный переменной Р. До тех пор, пока переменная Р не получит нулевое значение, будет выполняться цикл while и, следовательно, ввод информации.

После того, как файл создан и закрыт, в переменную fio1 вводится фамилия студента. Далее идет цикл while, в котором читается файл и осуществляется поиск введенной фамилии. Рассмотрим подробно операторы, входящие в этот цикл.

Работа функции fscanf описана выше. В следующем операторе if применена функция feof, аргументом которой является указатель на файл. Эта функция определяет, достигнут ли конец файла. Если конец файла достигнут, то оператор break прервет выполнение цикла. Работа двух последующих операторов fscanf не требует объяснений. Далее в программе применен оператор if. Длина определяется функцией strlen. Если сравниваемые строки оказались одинаковой длины, то выполняется функция strncmp, сравнивающая строки. Первыми двумя аргументами этой функции являются сами строки, а третьим аргументом – длина строки. Если строки совпали, то выводится информация о студенте, фамилия которого была введена.

 

#include < stdio.h>

#include < string.h>

main ( )

{ char fio [15], gr [6], fio1 [15];

float st;

int p=1;

FILE *lf;

clrscr ( );

lf=fopen ( “student.dat”, “w”);

while (p)

{ printf (“”);

printf (“\n”);

scanf (“%s “,&fio);

fprintf ( lf, “%s”, fio);

printf (“\n”);

scanf (“%s”, &gr);

fprintf ( lf, “%s”,gr);

printf (“\n”);

scanf ( “%f”,&st);

fprintf ( lf, “%f\n”,st);

printf (“\n”);

scanf ( “%d”,&p);

}

fclose (lf);

printf ( );

scanf ( “%s”,&fio1);

lf=fopen (“student.dat”,”r”);

while (1);

{

fscanf (lf,”%s”,&fio);

if (feof (lf)) break;

fscanf (lf,”%s”,&gr);

fscanf (lf,”%f”,&st);

if ( strlen (fio)=strlen (fio1))

if (strncmp(fio,fio1,strlen(fio))=0)

printf (“%s %s %f\n”, fio, gr, st);

}

fclose (lf);

}

Рисунок1- Программа