Артем, привет, тот же вопрос: подскажи плз как из файла.txt читать в массив....
Код ниже... (мусора много, т.к. это тест)
буду признательна.... спб
+++++++BEGIN+++
/*БД ВЕКСЕЛЯ
ввод данных
запись в файл
чтение из файла (может читать c пробелами)
поиск строки по номеру векселя*/
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <windows.h>
#include <cmath>
#include <string.h>
#include<fstream>
#define KEY_ESC 0x1b
#define KEY_ENTER 0x0d//0x0d тоже что и 0xd (без d)
using namespace std;
//-------------------------
int main()
{ SetConsoleCP(1251);
SetConsoleOutputCP(1251);
//---------Ввод данных и помещение в файл
char number[5][10];//имя_массив[строки-6][длина строки массива]: массив номеров векселей
char name_vdat[5][15];//массив наименований векселедателей
char name_vder[5][15];//массив наименований векселедержателей
char sdata[5][9];//массив дат составления
char sum[5][15];//массив номиналов
int t,s;//переменные для ввода данных по векселям
cout<<"Введите количество записей, которое Вы хотите ввести: ";
cin>>s;
char a[10],b[15],c[15],d[10],e[15];//номер векселя, Векселедатель, Векселедержатель, дата составления, номинал
ofstream out("test.txt");
if(!out)
{
cout<<"не могу создать файл.\n";
return 1;
}
for(t=0;t<s;++t)
{
//номер векселя
cout<<"\nВведите номер векселя: ";
cin>>a;
strcpy(number[t],a);
//cout<<"Номер векселя[ "<<t<<" ]: "<<number[t]<<"\n";
out<<number[t]<<"\t";
//Векселедеатель
cout<<"Введите наименование Векселедателя: ";
cin>>b;
strcpy(name_vdat[t],b);
//cout<<"Векселедатель[ "<<t<<" ]: "<<name_vdat[t]<<"\n";
out<<name_vdat[t]<<"\t";
//Векселедержатель
cout<<"Введите наименование Векселедержателя: ";
cin>>c;
strcpy(name_vder[t],c);
//cout<<"Векселедержатель[ "<<t<<" ]: "<<name_vder[t]<<"\n";
out<<name_vder[t]<<"\t";
//Дата составления
cout<<"Введите дату составления векселя в формате ДД.ММ.ГГ: ";
cin>>d;
strcpy(sdata[t],d);
//cout<<"Дата составления[ "<<t<<" ]: "<<sdata[t]<<"\n";
out<<sdata[t]<<"\t";
//Номинал
cout<<"Введите номинал векселя (цифры вводятся без точек, пробелов и копеек): ";
cin>>e;
strcpy(sum[t],e);
//cout<<"Номинал векселя[ "<<t<<" ]: "<<sum[t]<<"\n\n";
out<<sum[t]<<"\n";
}
out.close();
//--------------чтение массива просто так, для проверки
for(t=0;t<s;++t)
{
//номер векселя
cout<<"[ "<<t<<" ]:"<<number[t]<<"\t";
//Векселедеатель
cout<<" [ "<<t<<" ]:"<<name_vdat[t]<<"\t";
//Векселедержатель
cout<<" [ "<<t<<" ]: "<<name_vder[t]<<"\t";
//Дата составления
cout<<" [ "<<t<<" ]: "<<sdata[t]<<"\t";
//Номинал
cout<<" [ "<<t<<" ]: "<<sum[t]<<"\n";
}
//------------чтение из файла
char ch;
ifstream in("test.txt",ios::in | ios::binary);
if(!in)
{
cout<<"не могу открыть файл.\n";
return 1;
}
while(in)
{
//in будет false когда достигнут eof
in.get(ch);
if(in) cout<<ch;
}
in.close();
//-----Поиск нужного эелемента
find:
char num1,z,w='Y';
char str[10],nov[15];
int i;
cout<<"Выберите один из следующих параметром для осуществления поиска из заданной выборки:\n";
cout<< "\n A. Номер векселя";
cout<< "\n B. Векселедатель";
cout<< "\n C. Векселедержатель";
cout<< "\n D. Дата составления векселя (формат ДД.ММ.ГГ)";
cout<< "\n E. Номинал векселя";
cout<< "\n **********************************************";
cout<< "\n Введите соответствующую выбранному пункту букву латинского алфавита: ";
cin>>num1;
switch(num1)
{
case 'A':
cout<<"\nВведите номер векселя для поиска данных по векселю: ";
cin>>str;
for(i=0;i<t;i++)
{ if(!strcmp(str,number[i]))
{
cout<<"искомая строка: "<<number[i]<<"\t"<<name_vdat[i]<<"\t"<<name_vder[i]<<"\t"<<sdata[i]<<"\t"<<sum[i]<<"\n";
cout<<"\nВведите новый номер векселя: ";//меняем ранее введенные данные
cin>>nov;
strcpy(number[i],nov);
cout<<"измененная строка: "<<number[i]<<"\t"<<name_vdat[i]<<"\t"<<name_vder[i]<<"\t"<<sdata[i]<<"\t"<<sum[i]<<"\n";
break;
}
if(i==t) cout<<"Не найдено.\n";
}
break;
case 'B':
cout<<"\nВведите наименование Векселедателя для поиска данных по векселю: ";
cin>>str;
for(i=0;i<t;i++)
{ if(!strcmp(str,name_vdat[i]))
{
cout<<"искомая строка: "<<number[i]<<"\t"<<name_vdat[i]<<"\t"<<name_vder[i]<<"\t"<<sdata[i]<<"\t"<<sum[i]<<"\n";
break;
}
if(i==t) cout<<"Не найдено.\n";
}
break;
case 'C':
cout<<"\nВведите наименование Векселедержателя для поиска данных по векселю: ";
cin>>str;
for(i=0;i<t;i++)
{ if(!strcmp(str,name_vder[i]))
{
cout<<"искомая строка: "<<number[i]<<"\t"<<name_vdat[i]<<"\t"<<name_vder[i]<<"\t"<<sdata[i]<<"\t"<<sum[i]<<"\n";
break;
}
if(i==t) cout<<"Не найдено.\n";
}
break;
case 'D':
cout<<"\nВведите Дату составления в формате ДД.ММ.ГГ для поиска данных по векселю: ";
cin>>str;
for(i=0;i<t;i++)
{ if(!strcmp(str,sdata[i]))
{
cout<<"искомая строка: "<<number[i]<<"\t"<<name_vdat[i]<<"\t"<<name_vder[i]<<"\t"<<sdata[i]<<"\t"<<sum[i]<<"\n";
break;
}
if(i==t) cout<<"Не найдено.\n";
}
break;
case 'E':
cout<<"\nВведите номинал для поиска данных по векселю: ";
cin>>str;
for(i=0;i<t;i++)
{ if(!strcmp(str,sum[i]))
{
cout<<"искомая строка: "<<number[i]<<"\t"<<name_vdat[i]<<"\t"<<name_vder[i]<<"\t"<<sdata[i]<<"\t"<<sum[i]<<"\n";
break;
}
if(i==t) cout<<"Не найдено.\n";
}
break;
default:
cout<<"Вы можете вводить только предопределенные пункты меню: A, B, C, D, E.\n";
cout<<"Хотите продолжить поиск (Y/N)?";
cin>>z;
if(z==w) goto find;
else return 1;
}
cout<<"Хотите продолжить поиск (Y/N)?";
cin>>z;
if(z==w) goto find;
getch();
}
===============END===================