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 将浮点数保留三位以十位宽度(小数点也占一位)输出到屏幕,并向右对齐。

c语言学习记录之scanf,printf

相关推荐