#include<conio.h>
#include<iostream.h>
#include<string.h>
#define n 3
class ticket{
char* kuda;
int nomer;
char* client;
int date[3];
public:
ticket()
{
kuda=NULL;
nomer=0;
client=0;
date[0]=0; //den
date[1]=0; //mes
date[2]=0; //god
}
ticket(char* zn_kuda,int zn_nomer, char* zn_client, int zn_den,int zn_mes,int zn_god)
{ nomer=zn_nomer;
kuda=new char[strlen(zn_kuda)+1];
strcpy(kuda,zn_kuda);
client=new char[strlen(zn_client)+1];
strcpy(client,zn_client);
date[0]=zn_den; date[1]=zn_mes; date[2]=zn_god;
}
~ticket()
{ delete[] kuda; kuda=NULL;
delete[] client; client=NULL; }
void change_all(char* zn_kuda,int zn_nomer, char* zn_client, int zn_den,int zn_mes,int zn_god)
{ nomer=zn_nomer;
kuda=new char[strlen(zn_kuda)+1];
strcpy(kuda,zn_kuda);
client=new char[strlen(zn_client)+1];
strcpy(client,zn_client);
date[0]=zn_den; date[1]=zn_mes; date[2]=zn_god;
}
int get_nomer() { return nomer; }
void get_all()
{ cout<<nomer<<'\t'<<date[0]<<'.'<<date[1]<<'.'<<date[2]<<'\t'
<<kuda<<'\t'<<client<<'\t';
}
int search_date(int,int,int,int,int,int);
};
int ticket::search_date(int den1,int mes1,int god1,int den2,int mes2,int god2)
{ if(date[2]>=god1 && date[2]<=god2)
if(date[1]>=mes1 && date[1]<=mes2)
if(date[0]>=den1 && date[0]<=den2)
return 1;
return 0;
}
int main()
{ clrscr();
cout<<" ****AIRFLOT UA*****\n\n";
ticket* Matr=new ticket[n];
for(int i=0;i<n;i++)
{ cout<<"***** "<<(i+1)<<" ZAPIS'*****: \n";
cout<<" Vvedite pynkt nazna4enia: ";
char* zn_kuda=new char[80]; cin.getline(zn_kuda,80);
cout<<" Vvedite # reisa: "; int zn_nomer; cin>>zn_nomer;
cin.ignore();
cout<<" Vvedite FIO: ";
char* zn_client=new char[80]; cin.getline(zn_client,80);
cout<<" Vvedite daty(DD/MM/YY): ";
int zn_den,zn_mes,zn_god;
cin>>zn_den>>zn_mes>>zn_god;
cin.ignore();
Matr.change_all(zn_kuda,zn_nomer,zn_client,zn_den,zn_mes,zn_god);
delete[] zn_kuda; zn_kuda=NULL;
delete[] zn_client; zn_client=NULL;
}
cout<<"============POISK============\n";
cout<<" Vvedite # reisa: "; int nomer; cin>>nomer;
int den1,mes1,god1;
cout<<"Poisk reisa po vvedennomy periody vremeni\n";
cout<<" Vvedite 1-y daty: "; cin>>den1>>mes1>>god1;
int den2,mes2,god2;
cout<<" Vvedite 2-y daty: "; cin>>den2>>mes2>>god2;
cout<<"===== Resultat poiska ======\n";
for(i=0;i<n;i++)
if(Matr.get_nomer()==nomer)
if(Matr.search_date(den1,mes1,god1,den2,mes2,god2))
Matr.get_all();
cout<<endl;
cout<<"=========================";
getch(); delete[] Matr; Matr=NULL; return 0;
}
Стандартные потоки C++
вообщем лаба на тему стандартные потоки. Сказали переделать вот этот код, но я про эти потоки чето так и не поняла, как их применять и зачем, подскажите че делать!
cin - стандартного ввода;
cout - стандартного вывода;
cerr - стандартного вывода ошибок;
clog - полностью буферизованного вывода ошибок.
[COLOR="Red"]Так что надо сделать ? Уточни условие.[/COLOR]
P.S. Этот код работает,другое дело,что он похоже ничего не делает. Вводятся данные и все ?
Что должна делать программма ?
Это моя 1 лабораторная работа, а 2-я работа "Использование стандартных потоков ввода и вывода". Задание переделать 1-ю лабу под использование этих потоков. А я все ника не пойму куда их применять??Там же я тоже ввожу и вывожу на экран!
Я тоже ничего не понял. Стандартные потоки ввода\вывода здесь использованы. Может быть, ты уточнишь у своего преподавателя, что он понимает под словом "потоки"?
нужно сделать чтение из файла, запись в файл форматрование данных, проверка на ввод(например ты вводишь число, а надо вводить буквы)-обьяснили так!
Ребят, подскажите, могут-ли экземпляры потоков - fstream, ifstream в С++ Builder'e 2009 работать с типом String?? Я никак немогу настроить, так как транслятор не пропускает тип String для них, из-за того что тип String - это строки с широкими символами(UnicodeString)! Как настроить? Или так нельзя?
Цитата: Dr.CODE
Ребят, подскажите, могут-ли экземпляры потоков - fstream, ifstream в С++ Builder'e 2009 работать с типом String?? Я никак немогу настроить, так как транслятор не пропускает тип String для них, из-за того что тип String - это строки с широкими символами(UnicodeString)! Как настроить? Или так нельзя?
Если вы имеете ввиду System::String, то стандартные потоки с ним не работают.
А если вы имеете ввиду CString(Unicode)
То есть 2 варианта:
1) использовать CStringA вместо CString
2) std::wcin и std::wcout и т.д.
sigmov, спасибо большое! Теперь всё понятно!