Код:
#include "stdafx.h"
#include "iostream"
#include <conio.h>
#include <fstream>
using namespace std;
char a[20],chk[1024],srch[1024],srchtaunt[1024];
int n,t,j,b,e,f,srchcount,srchnum,srchk;
struct atmbl
{
char fam[1024];
char name[1024];
char otch[1024];
}c1[1024],c2[1024];
void out()
{
cout<<endl;
cout<<"ВЫВОД БАЗЫ ДАННЫХ: "<<endl;
cout<<endl;
for(int out=0;out<n;out++)
cout<<c1[out].fam<<","<<c1[out].name<<","<<c1[out].otch;
cout<<endl;
}
void add()
{
char ffam[1024],fname[1024],fotch[1024];
int count;
ofstream outp;
outp.open("database.txt",ios::app);
cout<<"Введите фамилию человека: ";
cin>>ffam;
cout<<endl<<endl;
cout<<"Введите имя человека: ";
cin>>fname;
cout<<endl<<endl;
cout<<"Введите отчество человека: ";
cin>>fotch;
cout<<endl<<endl;
outp.put('\n');
count = strlen(ffam);
outp.write(ffam,count);
outp.put(',');
count = strlen(fname);
outp.write(fname,count);
outp.put(',');
count = strlen(fotch);
outp.write(fotch,count);
cout<<endl;
cout<<"1. Добавить еще одну запись"<<endl;
cout<<"2. Завершить"<<endl;
cin>>a;
cout<<endl;
switch(a[0])
{
case '1':{add();
break;}
default: {
break;}
}
}
void main()
{ setlocale(LC_ALL,"Russian");
cout<< "--===Начало работы===--";
cout<<endl;
cout<<endl;
for(;;)
{
cout<<"1. Вывести базу данных"<<endl;
cout<<"2. Добавить новые записи в базу данных"<<endl;
cout<<"3. Выход из программы"<<endl;
cout<<endl;
cout<<"Выберите действие и нажмите Enter для продолжения: ";
FILE * str;
str=fopen("database.txt","r");
n=0;
do
{
fscanf(str,"%[^,] %*[,] %[^,] %*[,] %[^,] %*[,] %[^,] %*[,] %[^,] %*[,] %[^\n]",c1[n].fam,c1[n].name,c1[n].otch);
n++;
}
while (fscanf(str,"%c",chk) != EOF);
fclose(str);
cin>>a;
switch(a[0]) {
case '1': {
out();
cout<<"Действие выполнено"<<endl;
break;
}
case '2': {add();
break;}
case '3': {exit(1);
break;}
default: {
cout<<endl;
cout<<"Введено неверное значение, попробуйте еще раз";
cout<<endl<<endl;
}
}
}
}
Нужно добавить функцию, которая считывает фамилию с клавиатуры и выводит Ф.И.O. всех людей с этой фамилией в другой файл. Заранее спасибо.