Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Стандартные потоки C++

9.8K
20 июня 2007 года
FISH.ka
35 / / 07.01.2007
вообщем лаба на тему стандартные потоки. Сказали переделать вот этот код, но я про эти потоки чето так и не поняла, как их применять и зачем, подскажите че делать!
Код:
#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;
}
320
21 июня 2007 года
m_Valery
1.0K / / 08.01.2007
Имеются 4 стандартных предопределенных потока,предназначеных для:
cin - стандартного ввода;
cout - стандартного вывода;
cerr - стандартного вывода ошибок;
clog - полностью буферизованного вывода ошибок.
[COLOR="Red"]Так что надо сделать ? Уточни условие.[/COLOR]
P.S. Этот код работает,другое дело,что он похоже ничего не делает. Вводятся данные и все ?
Что должна делать программма ?
9.8K
21 июня 2007 года
FISH.ka
35 / / 07.01.2007
Это моя 1 лабораторная работа, а 2-я работа "Использование стандартных потоков ввода и вывода". Задание переделать 1-ю лабу под использование этих потоков. А я все ника не пойму куда их применять??Там же я тоже ввожу и вывожу на экран!
9
21 июня 2007 года
Lerkin
3.0K / / 25.03.2003
Я тоже ничего не понял. Стандартные потоки ввода\вывода здесь использованы. Может быть, ты уточнишь у своего преподавателя, что он понимает под словом "потоки"?
9.8K
21 июня 2007 года
FISH.ka
35 / / 07.01.2007
нужно сделать чтение из файла, запись в файл форматрование данных, проверка на ввод(например ты вводишь число, а надо вводить буквы)-обьяснили так!
51K
11 января 2010 года
Dr.CODE
18 / / 10.11.2009
Ребят, подскажите, могут-ли экземпляры потоков - fstream, ifstream в С++ Builder'e 2009 работать с типом String?? Я никак немогу настроить, так как транслятор не пропускает тип String для них, из-за того что тип String - это строки с широкими символами(UnicodeString)! Как настроить? Или так нельзя?
842
11 января 2010 года
sigmov
301 / / 16.09.2008
Цитата: Dr.CODE
Ребят, подскажите, могут-ли экземпляры потоков - fstream, ifstream в С++ Builder'e 2009 работать с типом String?? Я никак немогу настроить, так как транслятор не пропускает тип String для них, из-за того что тип String - это строки с широкими символами(UnicodeString)! Как настроить? Или так нельзя?



Если вы имеете ввиду System::String, то стандартные потоки с ним не работают.
А если вы имеете ввиду CString(Unicode)
То есть 2 варианта:
1) использовать CStringA вместо CString
2) std::wcin и std::wcout и т.д.

51K
11 января 2010 года
Dr.CODE
18 / / 10.11.2009
sigmov, спасибо большое! Теперь всё понятно!
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог