c - scanf 对错误的输入返回非 0 值
问题描述
如果我在此配置下将“1k”(或任何后跟字母的数字)输入到 scanf 中,我仍然会从函数返回 true(非 0),如果存在除整数之外的任何内容,是否有任何方法显式返回 false?基本上我想知道我的字符串是否只是数字
ps 合法开关检查我的输入是否是几个给定选项之一
void clearBuffer() {
while (getchar() != '\n') {}
}
int getChoice(){
int choice = 0;
//clearBuffer();
while (scanf("%d",&choice)!=0 ||!legalSwitch(choice))
{
clearBuffer();
printf("\nWrong choice, please choose an integer between 1 to 3: ");
}
}
解决方案
推荐阅读
- powershell - 即使没有运行 chrome 进程,也要执行“taskkill /f /im chrome.exe”
- javascript - 关于数组创建的思考
- apache-kafka - 如何在 Kafka 中执行消息(事件)聚合?
- javascript - 是否可以将 css 样式标签转换为 javascript 对象?
- fosrestbundle - Symfony 4 FOSRestBundle 布尔值总是错误的
- reactjs - 调用 actionCreator 函数不能通过 bindActionCreators 工作
- php - Woocommerce 通过 XML 自动更新产品
- icons - 我在哪里可以获得材料图标的代码?
- javascript - 使用正则表达式从字符串中获取值
- powerbi - 在 power bi 有条件地在卡片或表格视觉下方添加超链接