Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Создание консольного приложения. Для создания текстового файла в консольном приложении используем функцию fprintf()






Для создания текстового файла в консольном приложении используем функцию fprintf (). Текст программы может иметь следующий вид:

...

#include < stdio.h>

#include < io.h>

...

struct TZap{

char FIO[30];

double s_b;

} Zap;

int size = sizeof(TZap);

FILE *Fz, *Ft;

char File_Zap[] = " zapisi.dat";

char File_Rez[] = " rezult.txt";

void Out(TZap);

 

void main()

{

int kod, D_f, i=0, j, kol;

long len;

TZap st, *mas_Z;

Ft = fopen(File_Rez, " w");

while(true) {

puts(" \n Create – 1\n Add – 2\n View – 3\n Sort – 4\n EXIT – 0");

scanf(" %d", & kod);

switch(kod) {

case 1:

if ((Fz=fopen(File_Zap, " wb"))==NULL) {

puts(" \n Create ERROR! ");

return;

}

fclose(Fz);

printf(" \n Create New File %s! \n", File_Zap);

break;

case 2:

Fz = fopen(File_Zap, " ab");

printf(" \n F.I.O. – ");

fflush(stdin);

gets(Zap.FIO);

printf(" Ball – ");

scanf(" %lf", & Zap.s_b);

fwrite(& Zap, size, 1, Fz);

fclose(Fz);

break;

case 3:

if ((Fz=fopen(File_Zap, " rb"))==NULL) {

puts(" \n Open ERROR! ");

return;

}

// Вывод на экран

printf(" \n\t--------- Informations ---------");

// Запись такой же информации в текстовый файл Ft

fprintf(Ft, " \n\t--------- Informations ---------");

while(1) {

if(! fread(& Zap, size, 1, Fz)) break;

Out(Zap);

}

fclose(Fz);

break;

case 4:

Fz = fopen(File_Zap, " rb");

D_f = fileno(Fz);

len = filelength(D_f);

kol = len/size;

mas_Z = new TZap[kol];

// Считываем записи из файла в динамический массив

for (i=0; i < kol; i++)

fread((mas_Z+i), size, 1, Fz);

fclose(Fz);

printf(" \n\t----- S O R T -----\n");

fprintf(Ft, " \n\t----- S O R T -----\n");

for (i=0; i < kol-1; i++)

for (j=i+1; j < kol; j++)

if (mas_Z[i].s_b > mas_Z[j].s_b) {

st = mas_Z[i];

mas_Z[i] = mas_Z[j];

mas_Z[j] = st;

}

for (i=0; i< kol; i++)

Out(mas_Z[i]);

delete []mas_Z;

break;

case 0:

fclose(Ft);

return;

}

}

}

//----------------- Функция вывода одной записи на экран и в файл --------------------

void Out(TZap z)

{

printf(" \n %20s, %6.3lf.", z.FIO, z.s_b);

fprintf(Ft, " \n %20s, %6.3lf.", z.FIO, z.s_b);

}

 

Первоначально выбав пункт «1», создаем файл с именем zapisi. dat, который будет располагаться в текущем каталоге (созданной папке). Затем, выбирая пункт «2», последовательно вводим 4 записи. Выбрав пункт «3», просматриваем содержимое файла, а сортированные записи выведем на экран (запишем в файл), выбрав пункт «4». Результаты выполнения программы могут иметь вид:






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.