【发布时间】:2014-11-08 20:22:13
【问题描述】:
int getIndex(){
int index = 0;
do{
printf("Enter your Index(0..80),-1 to STOP,-2 to RESTART,-3 to START NEW BOARD: ");
scanf("%d", &index);
} while (!(index >= -3 && index <=80));
return index;
}
您好,鉴于我已经用 C 语言为数独游戏板编写了上述方法。我能做些什么来防止用户输入字母?并一直提示直到得到有效的输入。我刚刚开始 C 。限制我的是 scanf 标志说明符,我指定了一个 int 标志,这意味着如果用户输入一个字符串,我就搞砸了。
【问题讨论】:
-
你好,如果用户输入了无效输入,我想再次提示。
-
需要查看
scanf的返回值。阅读该函数的文档。 -
如果您刚开始使用 C,请注意以下建议:永远不要使用 scanf。 scanf 几乎从不在生产代码中使用,仅在学习语言时有用。使用它会完全扭曲你对语言的学习,这阻碍了它作为学习工具的应用。使用
fread并使用strtol解析数据。这是一次很好的学习经历。 -
@WilliamPursell “将完全扭曲你对语言的学习”。嗯,这是一个意见。还有一个:在学习语言的同时使用
scanf是完全可以的。
标签: c