FLAG:
int id;
cin >> id;
if (id == NULL)
{
cout << "请输入有效的数据" << endl;
goto FLAG;
}
int id;
FLAG:
cin >> id;
if (id == 0)
{
cout << "请输入有效的数据" << endl;
goto FLAG;
}
你是没有输入数据吧,把FLAG放到int id;后面试试。
id不可能为NULL的,你必须输入有效的数据才行。 FLAG: int id; cin >> id; if (id == 0) { cout << "请输入有效的数据" << endl; goto FLAG; }
没有人把id==NULL视为有效数据吧?按照你这个逻辑,应该是
if(id != NULL)
{
cout << "请输入有效的数据" << endl;
goto FLAG;
}
明白你意思了。就你现在的问题,主要是没有对id进行初始化,你只要改成 int id = 0;代码就可以正常了。另外在cin之后要增加清除缓冲区的代码,否则会连续提示输入有效数据
但是goto语句并不推荐,因此建议你这么修改。
int id = 0;
do
{
cin >> id;
while (getchar() != '\n'); //清除输入缓冲区,比如你输入aaaaaa的话
if (id == 0)
cout << "请输入有效的数据" << endl;
} while (id == NULL);
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632