【问题标题】:Integer error C [duplicate]整数错误 C [重复]
【发布时间】:2015-05-19 02:49:38
【问题描述】:

这就是我现在拥有的:

int main() {
int number;
printf("Type your number: ");
scanf("%i",&number);

char code[4];
printf("Type your code: ");
scanf("%s",&code);

当我在第一个中输入除数字以外的任何内容时,脚本会变得很疯狂,它只是显示

输入您的电话号码:NOTaNUMBER

输入您的代码:THErestOFtheSCRIPT

-- 返回命令行

我想要它做的是

输入您的电话号码:NOTaNUMBER

你没有输入数字

-- 返回命令行

我该怎么做?


这与所说的副本不同。我在这里谈论的是 C,而不是 C++。 C 不知道cin,即上述重复项的答案。但是,在下面找到了答案

【问题讨论】:

标签: c error-handling int


【解决方案1】:

用于输入字符串

  scanf("%s",code);

或更好

  scanf("%3s",code);

检查scanf返回的数字使用值的正确输入:

   char ch;
   if( 1 == scanf("%i",&number) )
   {
        // use correct number
   }
   else
   {
        // clean input bufer
       while( (ch = getchar()) != '\n' && ch != EOF);
   }

【讨论】:

  • 如果getchar() 返回EOF,您的代码将中断,它将进入无限循环。
  • 好的。我添加了对 EOF 的检查。谢谢建议
猜你喜欢
  • 2018-10-22
  • 1970-01-01
  • 1970-01-01
  • 2013-06-08
  • 1970-01-01
  • 1970-01-01
  • 2011-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多