Типы данных в языке C++__________________________________691

char s[80], key[10] ;

strcpy(key,Editl->Text.c_str()); // загрузка ключевой строки

do

{

fscanf(F, "%s", &s) ;

if(feof(F)|| !strcmp(s,key)) break;

>
while(true) ;

fclose(F);

if (!strcmp(s,key))

ShowMessage("Слово найдено");

В этом коде вводится рабочая строка s и строка key, в которую функцией
strcpy загружается ключевое слово. Далее в цикле функцией fscanf в строку s чи-
тается по одной лексеме из файла. Функция strcmp сравнивает эту лексему с клю-
чом. Она возвращает 0, если строки s и key совпадают. В этом случае, а также при
достижении конца файла цикл прерывается.

Мы рассмотрели вопросы чтения из текстового файла. Имеется также ряд
функций записи в текстовый файл. Наиболее часто используемая из них — функ-
ция fprintf:

int fprintf(FILE *stream, const char *format[, argument, ...]);

Эта функция подобна рассмотренной выше функции fscanf, только строка
форматирования строится несколько иначе. В ней используются аналогичные рас-
смотренным ранее символы типа, помещаемые после символа «% ». Но имеется
много возможностей по выбору формата печати данных в файл. Кроме того, все
символы строки форматирования, не предваряемые символом «%», просто поме-
щаются в выходной поток. Подробнее о функции fprintf и других функциях запи-
си вы можете посмотреть в главе 14 в разделе 14.12.4. А пока приведем только ко-
роткий пример.

Пусть у вас имеется строка s типа (char *), содержащая фамилию сотрудника,
и целое число year, содержащее год его рождения. Вы хотите создать текстовый
файл и занести в него запись, первая строка которой содержит слово
«ХАРАКТЕРИСТИКА», а вторая — текст «сотрудника ..., ... г.р.». Вместо точек в
этом тексте подразумевается фамилия и год рождения. Это можно сделать следую-
щим кодом:

FILE *F;

if ((F = fopen("Test.txt", "wt")) == NULL)

{
ShowMessage("Файл не удается создать");

return;

}

char S [40];

int year = 1960;

strcpy(s,"Иванов");

fprintf(F, "ХАРАКТЕРИСТИКА\псотрудник %s, %i r.p.\n", &S, year);

fclose(F) ;

Файл открывается функцией fopen как текстовый файл для записи. Если фай-
ла с указанным именем не было, он создается. Если такой файл был, все его содер-
жимое уничтожается. Затем функцией fprintf в файл записывается требуемый
текст. В строке форматирования этой функции записан текст первой строки, затем
указан символ перехода на новую строку «\п»; далее следует начало второй стро-
ки — «сотрудник », затем символы «%s», задающие тип первого аргумента — ука-
зателя на S, затем символы «%i», задающие тип второго аргумента — числа year,
и наконец — заключительная часть второй строки. В результате в файл будут за-
писаны строки: