【问题标题】:ERROR HANDLING OF CHARACTER DATA TYPE IN C PROGRAMMINGC 编程中字符数据类型的错误处理
【发布时间】:2020-03-25 17:35:57
【问题描述】:

如果用户输入了无效的输入,程序将再次提问,直到用户输入有效的输入。然而,下面的代码执行了它,它执行了两次命令:

void error_checking(){
        char input;
        printf("Enter letters from a to e");
        scanf("%c", &input);
        if((input<102) || (input>96)){
             printf("Valid input");
        } else {
             error_checking():
        }
int main(){
        error_checking();
}

【问题讨论】:

  • 看看你的 OR 逻辑
  • input>96 && input
  • 旁注:'a' 比 int 常量更容易阅读
  • 您也可以从标题中删除 SHOUTING

标签: c error-handling


【解决方案1】:

使用

scanf(" %c", &input);
       ^^^

而不是

scanf("%c", &input);
       ^^

否则函数scanf会读取对应于按下的回车键的换行符'\n'。

你也得到了函数的右大括号。

而且使用像这样的幻数是个坏主意

if((input<102) || (input>96)){

至少你有写作能力

if((input<102) && (input>96)){

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2015-01-21
    • 2011-08-11
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多