杨斌522 发表于 2020-3-2 19:08:59

scanf函数返回值问题

#include <stdio.h>

int main()
{
      float num = 0;
      double sum = 0;
      int status;

      do
      {
                printf("请输入合法的数字:");
                do
                {
                        sum = sum + num;
                        status = scanf("%f", &num);
                } while (getchar() != '\n' && status == 1);
      } while(status == 1);

      printf("结果是:%.2lf\n", sum);
      printf("%d",status);

      return 0;
}

status这个值是怎么变化的?
自己作的时候status结果值一直是0

zltzlt 发表于 2020-3-2 19:13:28

如果用户成功输入浮点数,则 scanf 的返回值为 1

qiuyouzhi 发表于 2020-3-2 19:14:10

scanf的返回值是1或0
1就是用户输入了数据,0就是没有输入

te___amo 发表于 2020-3-2 19:21:26

?一直为1 好吧   我这么一直输入

是皮皮丹呀。 发表于 2020-3-2 21:23:31

我猜是因为判断完后,所以status清零了?我在输出之前加了一句status=num;好像就对了。也不是很确定啦{:10_269:}
页: [1]
查看完整版本: scanf函数返回值问题