Тема: Перегляд файлу
#include "stdafx.h"
#include<iostream>
#include <fstream>
#include<conio.h>
#include <cstdlib>
#include<stdio.h>
using namespace std;
struct vokzal
{
char fio[25];
char gorod[20];
int kol;
};
vokzal bilet;
void prosm(){
}
void add(){
ofstream fout("C:\\cppstudio.txt", ios_base::out | ios_base::app); // создаём объект класса ofstream для записи и связываем его с файлом cppstudio.txt
// ios_base::out | ios_base::app// параметры для зозаписи в файл
char y;
do
{
cout << "Введите фамилию " << endl;
cin.sync();
gets_s(bilet.fio);
cout << "Введите город " << endl;
cin.sync();
gets_s(bilet.gorod);
cout << "Введите количетво " << endl;
cin >> bilet.kol;
fout << endl;
fout << bilet.fio << endl << bilet.gorod << endl << bilet.kol << endl;
cout << "Хотите зделать ёще одну запись y/n " << endl;
cin >> y;
} while (y=='y');
fout.close();
}
void edit(){}
int main()
{
system("chcp 1251");
system("cls");
int k;
do
{
printf("\n1.Просмотр файла данных:");
printf("\n2.Добавление записи данных:");
printf("\n3.Редактирование записи:");
printf("\n4.Выход:");
o:cin.sync();
printf("\n Выбирите пункт меню: ");
scanf_s("%i", &k);
if ((k<0) || (k>4)) {
cout << endl << "Вы ввели неверное значение, повторите(1-4) допустимое ";
goto o;
}
switch (k)
{
case 1:{
prosm();
break;
}
case 2:{
add();
break;
}
case 3:{
edit();//
break;
}
}
} while (k != 4);
_getch();
return 0;
}
допоможіть реалізувати функцію перегляду в файлі
на С робив
int prosm()
{ char otv;
printf("Просмотр файла данных \n");
int handle; // дескриптор файла
FILE *fp; // указатель на файл, который будет создан с помощью функции fopen()
int size=sizeof(struct vokzal); //размер одной записи (об одной книге) в байтах
int n,N;
//printf("dlina zapici file - %i\n",size);
if ((fp=fopen ("book.dat","rb"))==NULL)
{fputs("Невозможно открыть файл book.dat\n",stderr);
getch();
return 1;
//exit(1); // в данном случае - то же,что и return 1;
}
handle = fileno(fp); // преобразовать открытый файловый поток в дескриптор файла
n=filelength(handle);
//printf("n - %i ",n);
N=n/size;
for (int i = 0; i<N; i++)
{
fread(&bilet,size,1,fp);
}
fclose(fp);
return 0;
}