C语言输入输出函数PRINTF与SCANF的用法格式

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C 语言输入输出函数printf 与scanf 的用法格式printf()函数用来向标准输出设备(屏幕)写数据;

scanf()函数用来从标准输入设备(键盘)上读数据。下面详细介绍这两个函数的用法。

一、printf()函数

printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:

printf("<格式化字符串>",<参量表>);

其中格式化字符串包括两部分内容:一部分是正常字符,这些字符将按原样输出;另一部分是格式控制字符,以"%"开始,后跟一个或几个控制字符,用来确定输出内容格式。

参量表是需要输出的一系列参数,可以是常量、变量或表达式,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。

例如:printf("a=%d b=%d",a,b);

格式控制字符

参量表

正常字符

1.格式控制符Turbo C

2.0提供的格式化规定符如下:━━━━━━━━━━━━━━━━━━━━━━━━━━

符号作用

──────────────────────────

%d十进制有符号整数

%u十进制无符号整数

%f浮点数

%s字符串

%c单个字符

%p指针的值

%e,%E指数形式的浮点数

%x,%X无符号以十六进制表示的整数

%o无符号以八进制表示的整数

%g,%G自动选择合适的表示法

━━━━━━━━━━━━━━━━━━━━━━━━━━

printf的附加格式说明字符

字符说明

l用于长整型数或双精度实型,可加在格式

符d、o、x、u和f前面

m(代表一个正整

数)

数据最小输出显示宽度

n(代表一个正整数)对实数,表示输出n位小数;对字符串,表示截取的字符个数。

-输出的数字或字符在域内向左靠,即位数

不足时右补空格。

说明:

在输出时,对不同类型的数据要使用不同的格式字符。常用的有以下几种:

(1)d格式符。用来输出十进制整数。

①%d。按十进制整型数据的实际长度输出。

②%md。M为指定的输出字段宽度。如果数据的位数小于

m,则左端补以空格,若大于m,则按实际位数输出。例如:

printf("%4d,%4d",a,b);

若a=123,b=12345,则输出结果为

_123,12345

③%ld。输出长整型数据,例如

long a=135790;

printf("%ld",a);

如果用%d输出,就会发生错误,因为整型数据的取值范

围为-32768~32767。对于long型数据应当用%ld格式输出。对长整型数据也可以指定字段宽度,如将上面printf 函数中的“%ld”改为“%8ld”,则输出为

__135790

一个int型数据可以用%d或%ld格式输出。

(2)o格式符。以八进制整数形式输出。由于是将内存单元中的各位的值(0/1)按八进制形式输出,因此输出的数值不带符号,即将符号位也一起作为八进制数的一部分输出。例如:

int a=-1;

printf("%d,%o",a,a);

-1在内存单元中的存放形式(以4个字节补码形式存放)如下:

11111111111111111111111111111111输出为

-1,37777777777

不会输出带负号的八进制整数。对长整型(long型)可以用“%lo”格式输出。同样可以指定字段宽度,例如:printf("%13o",a);

__37777777777

(3)x格式符。以十六进制数形式输出整数。同样不会出现负的十六进制数。例如:

int a=-1;

printf("%x,%o,%d",a,a,a);

输出结果为

ffffffff,37777777777,-1

同样可以用“%lx”输出长整型数,也可以指定输出字段的宽度,例如“%12x”。

(4)u格式符。用来输出unsigned型数据,即无符号数,以十进制整数形式输出。

一个有符号整数(int型)也可以用%u格式输出;反之,一个unsigned型数据也可以用%d格式输出。按相互赋值的规则处理。Unsigned型数据也可以用%o和%x格式输出。

(5)c格式符。用来输出一个字符。例如:

char c='a';

printf("%c",c);

输出字符‘a’,请注意:“%c”中的c是格式符,逗号右边的c是变量名,不要混淆。

一个整数,只要它的值在0~255范围内,也可以用“%c”

使之按字符形式输出,在输出前,系统会将该整数作为ASCII码转换成相应的字符;反之,一个字符数据也可以用整数形式输出。例如:

char c='a';

int i=97;

printf("%c,%d\n",c,c);

printf("%c,%d\n",i,i);

运行结果为:

a,97

a,97

也可以指定输出字数宽度,例如:printf("%3c",c);

(6)s格式符,用来输出一个字符串,有几种用法:

①%s。例如:

printf("%s","CHINA");

输出字符串“CHINA”(不包括双引号)。

②%ms。输出的字符串占m列,如字符串本身长度大于m,则突破m的限制,将字符串全部输出,若串长小于m,则左补空格。

③%-ms。跟以上的区别就是右补空格。

④%m.ns。输出的字符串占m列,只取字符串左端n个字符,不足位数,左补空格。

⑤%-m.ns。跟以上的区别就是右补空格。

(7)f格式符。用来输出实数(包括单、双精度),以小数形式输出。有以下几种用法:

①%f,不指定字段宽度,由系统自动指定,整数部分全

部输出,并输出6位小数。单精度实数的有效位数一般为7

相关文档
最新文档