一、printf( )函数和scanf( )函数
1. printf函数的一般格式
printf ("格式控制",输出表列) ;
例如:printf("%d,%c\n",i,c);
(1)格式控制 ,用一对双引号括起来,包括两种信息:
① 格式说明 由“%”和特定字符组成,如:%d、%c、%f等,是格式说明符,用于说明输出项目所采用的格式;
② 普通字符 作为说明性的文字、符号等,照原样显示出来。
(2)输出表列 中的各项目指出了所要输出的内容,可是常量、变量或表达式。
常用的格式说明符 | 描述 |
%d | 按十进制整型数据的实际长度输出。 |
%c | 仅输出一个字符。 |
%s | 输出的结果是字符串 |
%f | 以小数形式输出一个实数(含单双精度数)。 整数部分全部输出,并输出6位小数。 |
%e | 以指数形式输出一个实数(含单双精度数)。 小数点前仅1位非0数字,并输出6位小数。 |
十进制形式
%d 或 %md 用于一般整型
%ld 或 %mld 用于长整型
%u 或 %mu 用于无符号基本整型
%lu 或 %mlu 用于无符号长整型
八进制形式
%o 或 %mo 用于一般整型
%lo 或 %mlo 用于长整型
十六进制形式
%x 或 %mx 用于一般整型
%lx 或 %mlx 用于长整型
可见:用于输入与输出整型数据的格式说明符是完全一样的,m表示输入数据时的宽度(即列数),与输出情形一样,对于八进制形式与十六进制形式的输入格式,主要用于输入无符号整型的数据。
2、scanf函数的一般格式
作用:将从键盘输入的值存入内存中所占的存储单元里。存储单元由地址标识。
说明:“格式控制”的含义同printf函数,说明输入的数据应使用的格式。
“地址表列”是由若干个地址组成的,可以是变量的地址或字符串的首地址。&是取地址运算符,用于取出变量的地址。
注意:
⑴ scanf函数中的“格式控制”后面应当是变量的地址,由取地址运算符和变量名共同组成,不能仅是变量名:scanf("%f%d", &a,&b);
⑵ 如果“格式控制”中除了格式说明以外还有其它字符,则在输入数据时必须在对应位置输入与之相同的字符:scanf("%d,%d", &a,&b);
从键盘输入时必须输逗号: 3,4 ↲
⑶ 用%c格式输入字符时,空格和转义字符都作为有效字符输入,应注意:scanf("%c%c%c", &a,&b,&c);
只有输入:xyz ↲ 才能使a得到x,b得到y,c得到z
⑷ 在输入数值型数据时,遇到空格、回车、Tab键或遇非法输入,则认为该数据结束: scanf("%d%c%f", &a,&b,&c);
⑸ 对于unsigned型变量所需的数据,可以用%u或%d格式输入。