c语言学习记录之scanf,printf
scanf函数和printf函数是c语言中常用的输入和输出函数,现在总结一下有关这两个函数的用法。
1.scanf
功能:标准输入函数,可以从标准输入设备(键盘)读取输入信息
用法:int scanf(const char *format,…)
例1:
int buffer=0;
scanf(“%x”,&buffer);
printf(“%d”,buffer);
输入:f
输出:15
读取一个十六进制整数,输出一个十进制整数。
scanf以固定格式读取输入,以下是一些scang函数支持的读取格式:
%d 读取一个十进制整数
%c 读取一个字符
%f 读取一个单精度浮点数
%x 读取一个十六进制整数
%X 读取一个十六进制整数
%p 读取一个地址
%lf 读取一个双精度浮点数
%lld 读取一个十进制64位整数
例2:
char buffer[20];
scanf(“%[a-z]”,buffer);
输入:abcdABCD
输出:abcd
scanf可以只读取指定字符集中的字符
a-z表示小写字母集合
A-Z表示大写字母集合
^ 表示集合的补集
* 表示不读取集合中的字符
利用scanf可以从固定格式的字符串中提取想要的部分
如:从qq邮箱字符串中提取qq号 “[email protected]”.
可以这样写 :
scanf(“%[0-9]”,buffer);
如果要提取后面的域名,则可以这样写:
scanf(“%*[^@]@%s”,buffer);
如果想要用scanf来接收含空格的字符串可以这样写:
scanf(“%[^ ]”,buffer);
例3:
int a,b,c;
scanf(“%1d%2d%3d”,&a,&b,&c);
printf(“%d %d %d”,a,b,c);
输入:123456
输出:1 23 456
scanf可以读取指定位数的十进制整数,十六进制整数,浮点数。
当读取指定位数的浮点数时小数点也算一位。
2.printf
功能:将信息输出到标准输出
用法: printf(const char *format,…)
printf函数的固定格式输出同scanf的固定格式输入。
printf可以将数据以指定宽度和对齐方式输出到屏幕:
int buffer=10;
printf(“%5d”,buffer);
将buffer按五位固定宽度输出到屏幕,并向右对齐,如果位数不足五位则用空格补齐,如果超过五位则按实际位数输出。
printf(“%-5d”,buffer);
向左对齐
如果要控制输出的浮点数小数点后的位数用以下方式:
float buffer=1.4321;
printf(“%10.3f”,buffer);
输出:1.432
%10.3f 将浮点数保留三位以十位宽度(小数点也占一位)输出到屏幕,并向右对齐。