T版,这个函数我看不懂啊,
首先,先把函数打出来:
int GetInt(void)//从控制台键盘读入一个int型数据
{
int value = 0;
do
{
value = 0;
printf("請輸入一個整數: ");
fflush(stdin);//清除缓冲区
} while (scanf("%d", &value)!= 1);//当等于1的时候跳出来吗?
return value;
}
第一个问题:while (scanf("%d", &value)!= 1);,这个语句难道不是当value的值不等于1的时候继续执行吗?为什么只是需要输入一次就跳出来了?我去改变了一下,把scanf语句独立出来,把while语句变成了这样“while (value!= 1);”结果输入0的时候也跳不出来。。。我觉得在这里面我有个知识盲点在里面,导致我理解错了。
第二个问题:这里的int GetInt(void)返回value,然而value又不是数组,只能包含一个值,那么为什么要while循环?在GetInt函数里面,我改成这样如下那样,好像也能运行。为什么要那样复杂呢?
int GetInt(void)//从控制台键盘读入一个int型数据
{
int value ;
printf("請輸入一個整數: ");
scanf("%d", &value);
return value;
}
还望你能教我。