【问题标题】:Function to test the type of the entered value测试输入值类型的函数
【发布时间】:2015-01-18 14:49:33
【问题描述】:

我想创建一个循环,在输入非整数之前一直读取值(此处为整数)。 例如,这是我写的代码

while(true)
 {
    scanf("%d",&w);
    if (w==100) break;
    else fwrite(&w,sizeof(int),1,f);
 }

只有在那里,测试是让用户输入数字 100。但我要搜索的是一个函数或某种方式来测试它是否是整数或检测错误的方法与输入的值。 isdigit() 似乎没有把戏弄到这里来。

有什么想法吗?

【问题讨论】:

    标签: c file loops int fwrite


    【解决方案1】:

    可以查看返回值表单scanf

    if (scanf("%d", &w)) != 1) {
        /* error, input doesn't match. */
    }
    

    或者,您可以放弃scanf,而只读取带有fgets 的字符串。然后您可以遍历字符串并执行isdigit 并决定您是否喜欢输入。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-16
      • 2022-11-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-08
      • 1970-01-01
      相关资源
      最近更新 更多