помогите? - очень срочно!

AnnaPolina

в С считать целое число - считываю сканфом scanf("%d", &k0);
Какой цикл надо написать ,чтобы при случайном вводе буквы программа не вылетала?
M1:printf("\n blablabla");
p=scanf("%d", &k0);
if (p==0) goto M1;
так зацикливается . c whilom тоже зацикливается! как?

AnnaPolina

ну же!

vpzhukov13

заходи в цикл(в С с goto-это жЭсть) только после проверки на тип числа

kurinih-mafiya

Даже при вводе числа зацикливается?

AnnaPolina

нет, число нормально, а если буква - то зацикливается

Timi

printf("\n blablabla");
p=scanf("%d", &k0);
if (p==0) goto M1;
printf("\n blablabla");//зачем тебе это нужно?
while(scanf("%d", &k0)!=0)
{
//обрабатывай, что тебе нужно
}
должно работать. сейчас проверю...

Timi

а как ты предполагаешь заканчивать ввод? что должно произойти, чтобы прога вышла из цикла?

AnnaPolina

мне нужно чтобы при неправильном вводе переменная вводилось заново, а программа не вылетала.

vpzhukov13

тебе только инты нужны,или с даблом буду тоже недовольные посты?

в С считать целое число

AnnaPolina

надо запрашивать ввод пока не введут наконец число, а потом уже будет выполняться вся остальная прога. А если ввели букву, то запросить снова ввод

AnnaPolina

будут

vpzhukov13

вставляй проверку на тип данных

AnnaPolina

как?

Timi


printf("\n blablabla");//зачем тебе это нужно?
int k0;
bool good = false;
char tmp[256];
while(!good)
{
good = false;
if(scanf("%d", &k0)!=0)
{
printf("%d\n",k0);//обрабатывай, что тебе нужно
good = true;
}
else scanf("%s",&tmp);// чистим буфер
}
scanf("q");
return 0;

AnnaPolina

наконец то! заработало!
огромное-огромное спасибо!

Timi

пожалуйста

psilocybe

о, а ты не только фоткать умеешь

kruzer25

Ну и шаманство в этих ваших сях
Оставить комментарий
Имя или ник:
Комментарий: