如何同时调用俩次scanf 给一个变量赋值?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何同时调用俩次scanf 给一个变量赋值?相关的知识,希望对你有一定的参考价值。

int i , Result = 0;
Result = scanf("%d", &i);
while(!Result)

Result = scanf("%d", &i);

这段程序是为了检查第一次录入的i值是否为整型值
如不是整型 则会返回0 进入while循环
但是里面的scanf()却不能响应再次赋值了
有高手知道怎么回事么 求指教

比如你输入了一个 字符型a, 就在你的输入缓冲区里面 放入a,检测到a不是整形,所以result=0;
当扫面到while语句的时候,你的a仍然在缓冲区内,所以你无法输入,自动无限循环!
只要在进入while清空输入缓冲区就可以了~
int i , Result = 0;
Result = scanf("%d", &i);
fflush(stdin); //清空输入缓冲区 就好了!
while(!Result)

Result = scanf("%d", &i);
参考技术A scanf()函数返回成功赋值的数据项数,读到文件末尾出错时则返回EOF。
所以你不能进入while循环
参考技术B 在判断条件的时候就退出了。

以上是关于如何同时调用俩次scanf 给一个变量赋值?的主要内容,如果未能解决你的问题,请参考以下文章

c语言编程。输入两个正整数,分别赋给变量a,b,计算ab之间所有整数之和。

静态变量赋值问题

mysql 如何给变量赋一个动态sql执行的结果

C语言指针变量为啥要赋初值?

C语言,如何给3个char变量赋值?不能直接char a='D',这种。要求用printf,scanf.

c++中怎么把一个字符串赋给一个变量