#include <windows.h>
#include <mmsystem.h>
#include <string.h>

void main()
{
    int a;
    char b;
    float c;
    printf("please input an integer:");
    scanf("%d", &a);
    printf("integer:%d\n", a);
    printf("please input an character:");
    getchar();/*将缓冲区的回车读走,如没有getchar(),scanf("%c",&b)会把回车读走,从而不能顺利输入字符型,scanf在读取字符型时需要区别对待,
因为它会读走回车,要加入getchar(),读取其他整型和float等类型时不用
*/ scanf("%c", &b); printf("character:%c\n", b); printf("please input a float number:"); scanf("%f", &c); printf("float:%f\n", c); }

有getchar():的运行结果

 没加入getchar():运行到输入字符串阶段发现是直接跳过的,因为scanf("%c",b)直接读取了缓冲区中的回车换行符(因为上一步我输入了12和回车换行符,12被 scanf("%d",&a);读走,所以只剩下回车换行符)

/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
  int a;
  char b;
  float c;
  printf("please input an integer:");
  scanf("%d",&a);
  printf("integer:%d\n",a);
  printf("please input an character:");
  scanf("%c",&b);
  printf("character:%c\n",b) ;
  printf("please input a float number:");
  scanf("%f",&c);
  printf("float:%f\n",c) ;
}
02-10 12:18