窝窝头传奇 发表于 2021-2-10 16:22:04

getchar 函数读取的问题

如果getchar函数读取是读一个判断一下吗 如果第一个读取的不是整数 不就break退出循环了吗?

qiuyouzhi 发表于 2021-2-10 16:41:21

下面还有一个子条件呢
if (num)
必须得有了数字才能退出循环

窝窝头传奇 发表于 2021-2-10 16:45:11

初始条件int num=0;

窝窝头传奇 发表于 2021-2-10 16:47:47

qiuyouzhi 发表于 2021-2-10 16:41
下面还有一个子条件呢
if (num)
必须得有了数字才能退出循环

我题目好像看错了

qiuyouzhi 发表于 2021-2-10 16:49:26

窝窝头传奇 发表于 2021-2-10 16:47
我题目好像看错了

?啥意思

窝窝头传奇 发表于 2021-2-10 16:50:49

题目要求只要打印第一组数字

窝窝头传奇 发表于 2021-2-10 17:00:11

#include <stdio.h>

int main()
{
      int ch;
      int num = 0;

      printf("请输入待转换的字符串:");

      do
      {
                ch = getchar();

                if (ch >= '0' && ch <= '9')
                {
                        num = 10 * num + (ch - '0');
                }
                else
                {
                        if (num)
                        {
                              break; // 如果已有数字,则退出循环
                        }
                }

      }
      while (ch != '\n');

      printf("结果是:%d\n", num);

      return 0;
}
就是我想说的是这个程序只要求打印第一组数字,也就是说假如输入:1k2j4n5k; If里面直接num=1,然后读取第二个是k 直接break 结束循环输出1

窝窝头传奇 发表于 2021-2-10 17:01:12

我前面表述的有点问题

一叶枫残 发表于 2021-2-10 23:32:47

所以你想问什么{:10_266:}
页: [1]
查看完整版本: getchar 函数读取的问题