这段有关格式控制符的怎么分析其运行过程啊


#include <stdio.h>
//输入12345abc
int main()
{
    int a;
    char ch;
    scanf("%3d%3c",&a,&ch);
    printf("%d,%c",a,ch);
}

scanf("%3d%3c",&a,&ch);

  • %d是截取一个数字,%c是截取一个字符;其中的3表示占位符,也就是说,对于%3d,如果你输入数字1234,它只能读取前三个,也就是a=123,而%c本来就只能读取一个字符,所以你写%3c只能读取三个字符中的第一个
  • 但是,如果是scanf("%3c%3c",&c1,&c2);这种,你输入abcdef,那么c1为a,c2为d,因为它们都会截取三个,但是只能获取其中的第一个
  • 需要注意,你这样读取的ch可能是空格或者换行符

d是截取数字,c是截取字母