Тип данных в С++.Проблема.

компьютеры программирование математика базы данных С++

FILE *fl;
typedef struct
{
char fio[30];
int group;
double sr_bal;
int dohod;
} TStudent;
TStudent stud[30];
char name[20];
int i;
int n=0;
int menu();
int newf();
int spisok();
int opf();
void resc();
void resf();

int main()
{
while (true)
{
switch (menu())
{
case 1: newf(); break;
case 2: spisok(); break;
case 3: opf(); break;
case 4: resc(); break;
case 5: resf(); break;
case 6: return 0;
default: "Viberite pravilno!";
}
puts("Press any key to continue");
getch(); system("cls");
}
}

int menu()
{
cout << "VIBERITE:" << endl;
cout << "1. New file i sozdanie" << endl;
cout << "2. Vvesti spisok" << endl;
cout << "3. Open file" << endl;
cout << "4. Vivesti result" << endl;
cout << "5. Vivesti v fail" << endl;
cout << "6. Exit" << endl;
int i;
cin >> i;
return i;
}

int newf()
{
cout << "Vvedite file name" << endl;
cin >> name;
if ((fl = fopen(name,"wb"))==NULL)
{
cout << "Oshibka pri sozdanii"<<endl;
return i;
}
cout << "OK" << endl;
fclose(fl);
}

int spisok()
{
cout << "Vvedite file name" << endl;
cin >> name;

if ((fl = fopen(name,"rb+"))==NULL)
{
cout << "fail ne sozdan"<<endl;
return i;
}

cout << "Vvedite chislo studentov " << endl;
cin >> n;

for (int i=0; i<n; i++)
{
cout << "Vvedite fio: ";
cin >> stud[i].fio;
cout << "Vvedite gruppu: ";
cin >> stud[i].group;
cout << "Vvedite srednii ball: ";
cin >> stud[i].sr_bal;
cout << "Vvedite dohod: ";
cin >> stud[i].dohod;
fwrite( &stud[i], sizeof(TStudent), 1, fl );
}
fclose(fl);
}

int opf()
{
cout << "Vvedite file name" << endl;
cin >> name;
if ((fl = fopen(name,"rb"))==NULL)
{
cout << "fail ne sozdan"<<endl;
return i;
}

n=0; TStudent t;
while(true)
{
int nwrt = fread( &t, sizeof(TStudent), 1, fl );
if (nwrt!=1) break;
stud[n]=t;
cout << stud[n].fio << " " << stud[n].group << " " << stud[n].sr_bal<< " " <<stud[n].dohod<<endl;
n++;
}
fclose(fl);
}

void resc()
{
int minz;
cout<<"vvedi min zarplatu"<<endl;
cin>>minz;
for (int i=0; i<n; i++)
if (stud[i].dohod < 2*minz)
cout << stud[i].fio <<" "<<stud[i].dohod<< endl;
}

void resf()
{
char namet[30];
FILE *ft;
cout << "Vvedite imya faila" << endl;
cin >> namet;
if ((ft = fopen(namet,"w"))==NULL)
{
cout << "Oshibka pri sozdanii "<<endl;
exit(1);
}
char s[80];
int minz;
cout<<"vvedi min zarplatu"<<endl;
cin>>minz;
for (int i=0; i<n; i++)
if (stud[i].dohod < 2*minz)
{
strcpy(s, stud[i].fio);
strcat(s, "\n");
fputs(s, ft);
}
fclose(ft);
}

текст программы. когда вводим не числа - программа тупит, как сделать чтобы она писала пользователю что не правильный ввод?

Примечание:
не та выразился, придираться будете в детском саду. по делу ничего не скажете? зачем отписываете тогда?
Ответы:
Очень редко, когда бывает, что тупит программа (ну бывает там, ошибка компилятора и т.д.), бывает, когда тупит программист.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.