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

Ваш аккаунт

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

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

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

Исключительные ситуации(С++)

4.8K
23 мая 2007 года
anty
89 / / 29.10.2006
Помогите добавить в эту прогу обработчик исключительной ситуаций для имени файла, т.е. если в иммени файла превышенно количество символов, то выдовалась бы ошыбка и возращяла бы на 1-н шаг назад(т.е. опять просила бы ввести имя файла)

Код:
#include <string.h>
#include <windows.h>
#include <iostream.h>
char* rus(const char *ps)
{char* bf=new char [strlen(ps)];
        CharToOem(ps,bf);
        return bf;}

class raduga
{
public:
   raduga(char *,char *,char *,int );
   void output_rad();
protected:
   char spektr[64];
   char vid[64];
   char name[64];
   int  nogl;
};

raduga::raduga(char *spektr,char *vid,char *name,int nogl)
{
   strcpy(raduga::name,name);
   strcpy(raduga::spektr,spektr);
   strcpy(raduga::vid,vid);
   raduga::nogl=nogl;
}

void raduga::output_rad()
{  cout<<  rus("Имя          :  ") <<rus(name)<<"\n";
   cout<<  rus("Спектр       :  ") <<rus(spektr)<<"\n";
   cout<<  rus("Вид          :  ") <<rus(vid)<<"\n";
   cout<<  rus("Поглащение   :  ") <<nogl<<"%"<<"\n";
}
////////////////////////щаблон блэк/////////////////////////////////////////////
template <class A> class black: protected raduga
{
public:
   black(char*,char*,char*,int,char*,A,A);
   void output_black() ;
protected:
   char HEX[64];
   A dlina;
   A chastota;
};
/*//////////////конструктор блэк/////////////////*/
template <class A>black<A>::black(char* spektr,char *vid,char *name,int nogl,char *HEX,A dlina,A chastota):raduga(spektr,vid,name,nogl)
{
   strcpy(black::HEX,HEX);
   black::dlina=dlina;
   black::chastota=chastota;
}
/*//////////////вывод блэк///////////////////////*/
template <class A>void black<A>::output_black()
{
   output_rad() ;
   cout<<"HEX          :  "<<HEX<<"\n";
   cout<<rus("Длина волны  :  ")<<dlina<<" nm"<<"\n";
   cout<<rus("Частота      :  ")<<chastota<<" hz"<<"\n";
}




//////////////////////шаблон вайт////////////////////////////////////////////////
template <class B>class white: protected raduga
{
public:
   white(char*,char *,char *,int,B*,int,int);
   void output_white() ;
protected:
   int dlina;
   int chastota;
   B RGB[64];
};
/*///////////конструктор вайт////////////////////*/
template <class B>white<B>::white(char* spektr,char *vid,char *name,int nogl,B *RGB,int dlina,int chastota):raduga(spektr,vid,name,nogl)
{  strcpy(white::RGB,RGB);
   white::dlina=dlina;
   white::chastota=chastota;
}
/*///////////вывод///////////////////////////////*/
template <class B>void white<B>::output_white()
{
   output_rad() ;
   cout<<rus("RGB          :  ")<<RGB<<"\n";
   cout<<rus("Длина волны  :  ")<<dlina<<" nm"<<"\n";
   cout<<rus("Частота      :  ")<<chastota<<" hz"<<"\n";
}


Код:
#include <conio.h>
#include <stdio.h>
#include "file.h"

void main()
{
char name[10];
char adr[]="C:\\";
char txt[]=".txt";
cout<<rus("Введите имя файла ");
  cin>>name;
        FILE *A; A=fopen(strcat(strcat(adr,name),txt),"w");
                if(!A)
                cout<<rus("Ошыбка при создании файла");
        clrscr();
                cout<<rus("Файл успешно создан");
        getch();
        clrscr();
                cout<<rus("Введите данные: ")<<"\n\n";

        cout<<rus("Черный цвет: ")<<"\n";
char s1[64],s2[64],s3[64];      //спетр, вид, имя
int  s4,s5,s6;                   // поглащение,длинаб частота
char s7[64];                    //HEX

cout<<rus("Имя         : ");  cin>>s3; fprintf(A,"%s\n",s3);
cout<<rus("Спектр      : ");  cin>>s1; fprintf(A,"%s\n",s1);
cout<<rus("Вид         : ");  cin>>s2; fprintf(A,"%s\n",s2);
cout<<rus("Поглащение  : ");  cin>>s4; fprintf(A,"%i\n",s4);
cout<<rus("HEX         : ");  cin>>s7; fprintf(A,"#%s\n",s7);
cout<<rus("Длина волны : ");  cin>>s5; fprintf(A,"%i\n",s5);
cout<<rus("Частота     : ");  cin>>s6; fprintf(A,"%i\n",s6);
fscanf(A,"%s\n%s\n%s\n%s\n%s\n%i\n%s",&s3,&s1,&s2,&s4,&s7,&s5,&s6);
black<int>b(s3,s1,s2,s4,s7,s5,s6);
clrscr();
cout<<rus("Вы ввели:")<<"\n";
b.output_black();
getch();
clrscr();

char q1[64],q2[64],q3[64];      //спетр, вид, имя
int  q4,q5,q6;                   // поглащение,длинаб частота
char q7[64];                    //RGB
cout<<rus("Белый цвет: ")<<"\n";
cout<<rus("Имя         : ");  cin>>q3; fprintf(A,"%s\n",q3);
cout<<rus("Спектр      : ");  cin>>q1; fprintf(A,"%s\n",q1);
cout<<rus("Вид         : ");  cin>>q2; fprintf(A,"%s\n",q2);
cout<<rus("Поглащение  : ");  cin>>q4; fprintf(A,"%i %\n",q4);
cout<<rus("RGB         : ");  cin>>q7; fprintf(A,"#%s\n",q7);
cout<<rus("Длина волны : ");  cin>>q5; fprintf(A,"%i\n",q5);
cout<<rus("Частота     : ");  cin>>q6; fprintf(A,"%i\n",q6);
fscanf(A,"%s\n%s\n%s\n%s\n%s\n%i\n%s",&q3,&q1,&q2,&q4,&q7,&q5,&q6);
white<char>w(q3,q1,q2,q4,q7,q5,q6);
clrscr();
cout<<rus("Вы ввели:")<<"\n";
w.output_white();
getch();
clrscr();
fclose(A);
getch();
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог