c - C) scanf+else+goto
问题描述
代码(这不是我的真实代码。这是示例)
scanf("%d",&a);`
selection:
printf("If you want to go back, press 1, Exit is press 2");
scanf("%d",&a);
if (a == 1)
{}
else if
{}
else
{
printf("You entered wrong! Try Again");
goto selection;
}
我这样写了一个代码。printf("If you want to go back, press 1, Exit is press 2");
但是当我输入字母错误时,此代码会重复。那些'a'(scanf)是int。我想解决这个问题,但我没有想通。所以我需要你的帮助!
解决方案
存储 scanf 返回的值(读取字段数),因此如果 scanf 没有读取任何内容,则将其视为无效输入。
selection:
printf("If you want to go back, press 1, Exit is press 2");
nf = scanf("%d",&a);
if (nf == 1 && a == 1)
{}
else if (nf == 1 && ....)
{}
else
{
printf("You entered wrong! Try Again");
goto selection;
}
推荐阅读
- swift - GPUImage2 录制的视频没有图像
- c# - 如何编写、编译和运行 C# 代码段或脚本
- python - 如何为特定工作项的不同阶段设置时间差
- python - 无法取消注册 ble 通知的 dbus 信号
- java - appium 的此会话问题不支持定位器策略“css 选择器”
- java - JUnit 执行所有包的所有测试类
- scala - 如何使用 spark scala 将单个多分类列拆分为二进制,如一个热编码器?
- wordpress - 如何删除主题中 wordpress 插件中定义的操作?
- amazon-ec2 - 如何在 Amazon Ec2 中正确使用 redis 服务器
- arrays - 索引超出范围数组下标