Вот самый простой пример:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
| #include<iostream.h>
#include<conio.h>
main(){
int a[16383],r;
cout<<"vvedite rozmirnist";
cin>>r;
cout<<"vvedite vvedite masiv";
for(int i=1;i<=r;i++)
cin>>a[i];
getch();
return 0;
} |
|
мне нужно зделать так чтоб когда пользователь введет в (r a[i]) какую нибудь чуж к примеру:Ё!"№;%:?*()_+\ ЙЦУКПРОЛОЛРkljnklnn и тд. Нада чтоб выбило сообщение про ошыбку ввода и попросило ввести снова.
но суть дела когда в переменною вводиш какое нибудь символ кроме числапрограма виснет.
Я думаю проверка должна ити по принцыпу гдето так:
C++ |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| #include<iostream.h>
#include<conio.h>
main(){
int key,a[16383];
char ch;
A:
cout<<"-----";
cin>>ch;
key=(int)ch;//переводит в код,для от 0 до 9 ето 48-57
if((key==48)||(key==49)||(key==50)||(key==51)||(key==52)||(key==53)||(key==54)||(key==54)||(key==55)||(key==56)||(key==57))
{cout<<"vvod vernuy";
key=key-48;
cout<<key;
}
else {cout<<"oshubka"; goto A;
getch();
return 0;
} |
|
ну вот такую проверку делал я но у нее оч много минусов:
1)розпознаетиса токо 1 символ тоитсть если веду 27 мне выведе в конце 2
2)когда идет присвоения к масиву в цыкле типа a[i]=key; и я перед етим ввел сh=111111
то оно присвоит так
а[i]=1;
а[i+1]=1;
а[i+2]=1;
а[i+3]=1;
а[i+4]=1;
а[i+5]=1;
Думаю суть моей проблемы тепер более ясна!!))