我是扬帆起航 发表于 2022-10-5 17:48:02

为什么这个输入的语句不需要scanf来输入?而是直接去输入

#include <stdio.h>

int main()
{
      int count = 0;

      printf("请随意一个英文句子:");

      while (getchar() != '\n')
      {
                count = count + 1;
      }

      printf("你总共输入了%d个字符!\n", count);

      return 0;
}

tommyyu 发表于 2022-10-5 18:00:50

它并不需要知道输入了什么内容,只需要知道输入了几个字符,而getchar一次只能获取一个字符,所以getchar几次就是有几个字符,也就是这个句子的长度

jackz007 发表于 2022-10-5 18:57:33

本帖最后由 jackz007 于 2022-10-5 19:00 编辑

      因为除了 scanf() 外,getchar() 是另外一个从键盘读取字符的函数,每次可以读取一个字符。
#include <stdio.h>

int main(void)
{
      char ch            ;
      scanf("%c" , & ch) ; // 这两句效果完全一样
      ch = getchar()   ; // 这两句效果完全一样
}
页: [1]
查看完整版本: 为什么这个输入的语句不需要scanf来输入?而是直接去输入