1、系统缓存

  1. char ch1[10], ch2;
  2. scanf("%s", ch1);
  3. ch2 = getchar();
  4. printf("ch1 = %s, ch2 = %c", ch1, ch2);
  5. # 输入内容
  6. zack
  7. [回车]/[空格]
  8. # 输出
  9. ch1 = zack, ch2 =

在结束scanf的输入后,以回车结尾,导致回车读取缓存。getchar不再要求输入,直接使用缓存内容。正确写法如下:

  1. char ch1[10], ch2;
  2. scanf("%s", ch1);
  3. fflush(stdin);
  4. ch2 = getchar();
  5. ...