所以我已经开始学习C++,并且我已经编写了这个简单的程序,当用户输入错误的数字时,它给出了一个选项,然而当用户输入任何字符时,它给出了选项再试一次,直接退出程序为什么会发生这种情况? `错误的输入将退出程序C++
#include<unistd.h>
#include<stdio.h>
int main(){
int a;
char b ,c;
start:
printf("INPUT ONLY NUMBER 1 : ");
scanf(" %d", &a);
if(a==1)
{
printf(" you entered correctly \n");
printf("do you want to try again? <Y> <N> \n");
scanf(" %c", &c);
if(c=='Y' ||c=='y')
{
goto start;
}
}
else {
sleep (1);
printf("wrong number , do you want to try again? <Y> <N> \n");
scanf(" %c" , &b);
}
if (b=='Y'||b=='y')
{
sleep(1);
goto start;
}
else
if(b=='n'||b=='N')
{
sleep(1);
printf("thank you and goodbye");
exit (1);
}
}
`
如果用户输入了错误的号码,它工作正常,但只有当用户输入一个字符 –
退出“,所以我已经开始学习C++“ - 这看起来像C,而不是C++。当然,你选择了正确的书吗?无论如何,获得一本更好的书! 'goto'有其应用,但初学者不应该从**开始! 1970年代/ 80年代早已逝去,使用结构化代码!并正确地格式化和缩进代码。 – Olaf
使用while循环代替goto语句 –