今天来讲一下scanf和printf的格式控制字符串
scanf与printf的生命如下,均位于stdio.h中
int scanf( const char *format, ... );
int printf( const char *format, ... );
我们所说的格式控制字符串,就是上面的const char *format
我们先讨论scanf
我们总是说写scanf的"%d%d"时,中间不要加逗号之类的,这是因为格式控制字符串要求完全匹配,下面举几个例子来说明:
①scanf("%d%d",&a,&b);或scanf("%d %d",&a,&b);(还有其他等价形式但是很少见)
输出:无
输入:1 2
结果:a为1,b为2
这里1和2之间的间隔可以是任意数量的空格、tab制表符、回车
②scanf("输入两个数:%d%d",&a,&b);
情况1:输出:无 输入:输入两个数:1 2
结果:a为1,b为2
情况2:输出:无 输入:输入数:1 2
结果:a、b读入失败
③printf("输入两个数:"); scanf("%d%d",&a,&b);
输出:输入两个数:
输入:1 2
结果:a为1,b为2
根据上述三个例子可以看出,scanf中的格式控制字符串中的全部内容,都需要一摸一样地输入,不同于python的input("输入提示")函数,会将""中的内容输出到屏幕
但是,这并不意味着格式控制字符串毫无用处,例如如果要读入某些确定格式的内容将会很方便。
例:读入一个百分比对:
scanf("%d%%%d%%",&a,&b);
输入:56% 82%
结果:a为56,b为82(如图所示)
