Cprintfscanf
语言输入输出函数与的用法格式
printf()函数用来向标准输出设备(屏幕)写数据;
scanf()函数用来从标准输入设备(键盘)上读数据。下面详
细介绍这两个函数的用法。
一、printf()函数
printf()函数是格式化输出函数,一般用于向标准输出
设备按规定格式输出信息。在编写程序时经常会用到此函
数。printf()函数的调用格式为:
printf("<格式化字符串>",<参量表>);
其中格式化字符串包括两部分内容:一部分是正常字符,
这些字符将按原样输出;另一部分是格式控制字符,以
"%"开始,后跟一个或几个控制字符,用来确定输出内容格
式。
参量表是需要输出的一系列参数,可以是常量、变量或
表达式,其个数必须与格式化字符串所说明的输出参数个数
一样多,各参数之间用","分开,且顺序一一对应,否则将
会出现意想不到的错误。
例如:
正常字符
参量表
p哑铃练背的动作 rintf("a=%db=%d",a,b);
格式控制字符
1.格式控制符TurboC2.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。输出长整型数据,例如
longa=135790;
printf("%ld",a);
如果用%d输出,就会发生错误,因为整型数据的取值范
围为-32768~32767。对于long型数据应当用%ld格式输
出。对长整型数据也可以指定字段宽度,如将上面printf
函数中的“%ld”改为“%8ld”,则输出为
__135790
一个int型数据可以用%d或%ld格式输出。
(2)o格式符。以八进制整数形式输出。由于是将内存
单元中的各位的值(0/1)按八进制形式输出,因此输出的
数值不带符号,即将符号位也一起作为八进制数的一部分输
出。例如:
inta=-1;
printf("%d,%o",a,a);
-1在内排球场标准尺寸 存单元中的存放形式(以4个字节补码形式存放)
如下:
11111111111111111111111111111111
输出为
-1,37777777777
不会输出带负号的八进制整数。对长整型(long型)可
以用“%lo”格式输出。同样可以指定字段宽度,例如:
printf("%13o",a);
__37777777777
(3)x格式符。以十六进制数形式输出整数。同样不会
出现负的十六进制数。例如:
inta=-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格式符。用来输出一个字符。例如:
charc='a';
printf("%c",c);
输出字符‘a’,请注意:“%c”中的c是格式符,逗号右
边的c是变量名,不要混淆。
一个整数,只要它的值在0~255范围内,也可以用“%c”
使之按字符形式输出,在输出前,系统会将该整数作为
ASCII码转换成相应的字符;反之,一个字符数据也可以
用整数形式输出。例如:
charc='a';
inti=97;
printf("%c,%dn",c,c);
printf("%c,%dn",i,i);
运行结果为:
a,97
a,97
也可以指定输出字数宽度,例如:printf("%3c",c);
(6)s格式符,用来输出一个字符串,有几种用法:
①
%s。例如:
printf("%s","CHINA");
输出字符串“CHINA”(不包括双引号)。
②
%ms。输出的字符串占m列,如字符串本身长度大于m,
则突破m的限制,将字符串全部输出,若串长小于m,则左
补空格。
③
④
%-ms。跟以上的区别就是右补空格。
%。输出的字符如何煎鸡蛋 串占m列,只取字符串左端n个字
符,不足位数,左补空格。
⑤
%-。跟以上的区别就是右补空格。
(7)f格式符。用来输出实数(包括单、双精度),以
小数形式输出。有以下几种用法:
①
%f,不指定字段宽度,由系统自动指定,整数部分全
部输出,并输出6位小数。单精度实数的有效位数一般为7
位(包括整数和小数位数)。
例如:
floatx,y;
x=111111.111;y=222222.222;
printf("%fn",x+y);
输出结果为:
333333.328125
显然,只有前7位数字是有效数字,千万不要以为凡是计
算机输出的数字都是准确的。双精度数也可以用%f格式
输出,它的有效位数一般为16位,给出小数6位。
②
%,指定输出的数据共占m列,其中有n位小数。
长度不够,左补空格。
③
%-,右补空格。
(8)e格式符。陈的成语 以指数形式输出实数。详细情况参阅谭
浩强的《C语言程序设计》。
(9)g格式符。用来输出实数,它根据数值的大小,自
动选择f格式或e格式。详细情况参阅谭浩强的《C语言程
序设计》。
(10)
2.一些特殊规定字符
━━━━━━━━━━━━━━━━━━━━━━━━━
━
字符作用
─────────────────────────
─
n换行
f清屏并换页
r回车
tTab符
xhh表示一个ASCII码用16进表示,
其中hh是1到2个16进制数
━━━━━━━━━━━━━━━━━━━━━━━━━
━
C程序中的第一条语句#include
另一个文件stdio.h,这是一个头文件,大叔电影 其中包括全部标准
输入输出库函数的数据类型定义和函数说明。
C编译器(TurboC或VC++6.0)对每个库函数使用的变
量及函数类型都已作了定义与说明,放在相应头文件"*.h"
中,用户用到这些函数时必须要用#include<*.h>或
#include"*.h"语句调用相应的头文件,以供连接。若没
有用此语句说明,则连接时将会出现错误。但有些编译器已
经将常用的头文件默认包含,可以将语句:
#include
二、scanf()函数
scanf()函数是格式化输入函数,它从标准输入设备(键
盘)读取输入的信息。
其调用格式为:
scanf("<格式化字符串>",<地址表>);
格式化字符串包括以下三类不同的字符;
1.格式化说明符:格式化说明符与printf()函数中的
格式说明符基本相同。
2.空白字符:空白字符会使scanf()函数在读操作中略
去输入中的一个或多个空白字符。
3.非空白字符:一个非空白字符会使scanf()函数在读
入时剔除掉与这个非空白字符相同的字符。
地址表是需要读入的所有变量的地址,而不是变量本
身。这与printf()函数完全不同,要特别注意。各个变量的
地址之间同","分开。
例2:
main()
{
inti,j;
printf("i,j=?n");
scanf("%d,%d",&i,&j);
}
上例中的scanf()函数先读一个整型数,然后把接
着输入的逗号剔除掉,最后读入另一个整型数。如果","这
一特定字符没有找到,scanf()函数就终止。若参数之间的
分隔符为空格,则参数之间必须输入一个或多个空格。
说明:
(1).对于字符串数组或字符串指针变量,由于数组名
和指针变量名本身就
是地址,因此使用scanf()函数时,不需要在它们前面加上
"&"操作符。例如
mian()
{
char*p,str[20]预防近视绘画 ;
scanf("%s",p);
scanf("%s",str);
printf("%sn",p);
printf("%sn",str);
}
本文发布于:2023-04-21 16:54:34,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/fan/82/507884.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |