资源描述:
《c语言格式化输入输出》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、C语言格式化输入输出函数TurboC2.0标准库提供了两个控制台格式化输入、输出函数printf()和scanf(),这两个函数可以在标准输入输出设备上以各种不同的格式读写数据。printf()函数用来向标准输出设备(屏幕)写数据;scanf()函数用来从标准输入设备(键盘)上读数据。下面详细介绍这两个函数的用法。一、printf()函数printf()函数是格式化输出函数,一般用于向标准输出设备按规定格式输出信息。在编写程序时经常会用到此函数。printf()函数的调用格式为:printf("<格式化字符串>",<参量表>);其中格式化字符串包括两部分内
2、容:一部分是正常字符,这些字符将按原样输出;另一部分是格式化规定字符,以"%"开始,后跟一个或几个规定字符,用来确定输出内容格式。参量表是需要输出的一系列参数,其个数必须与格式化字符串所说明的输出参数个数一样多,各参数之间用","分开,且顺序一一对应,否则将会出现意想不到的错误。1.格式化规定符TurboC2.0提供的格式化规定符如下:━━━━━━━━━━━━━━━━━━━━━━━━━━符号作用——————————————————————————%d十进制有符号整数%u十进制无符号整数%f浮点数%s字符串%c单个字符%p指针的值%e指数形式的浮点数%x,%
3、X无符号以十六进制表示的整数%0无符号以八进制表示的整数%g自动选择合适的表示法━━━━━━━━━━━━━━━━━━━━━━━━━━说明:(1).可以在"%"和字母之间插进数字表示最大场宽。例如:%3d表示输出3位整型数,不够3位右对齐。%9.2f表示输出场宽为9的浮点数,其中小数位为2,整数位为6,小数点占一位,不够9位右对齐。%8s表示输出8个字符的字符串,不够8个字符右对齐。如果字符串的长度、或整型数位数超过说明的场宽,将按其实际长度输出。但对浮点数,若整数部分位数超过了说明的整数位宽度,将按实际整数位输出;若小数部分位数超过了说明的小数位宽度,则按
4、说明的宽度以四舍五入输出。另外,若想在输出值前加一些0,就应在场宽项前加个0。例如:%04d表示在输出一个小于4位的数值时,将在前面补0使其总宽度为4位。如果用浮点数表示字符或整型量的输出格式,小数点后的数字代表最大宽度,小数点前的数字代表最小宽度。例如:%6.9s表示显示一个长度不小于6且不大于9的字符串。若大于9,则第9个字符以后的内容将被删除。(2).可以在"%"和字母之间加小写字母l,表示输出的是长型数。例如:%ld表示输出long整数%lf表示输出double浮点数(3).可以控制输出左对齐或右对齐,即在"%"和字母之间加入一个"-"号可说明输出
5、为左对齐,否则为右对齐。例如:%-7d表示输出7位整数左对齐%-10s表示输出10个字符左对齐2.一些特殊规定字符━━━━━━━━━━━━━━━━━━━━━━━━━━字符作用——————————————————————————换行f清屏并换页r回车tTab符xhh表示一个ASCII码用16进表示,其中hh是1到2个16进制数━━━━━━━━━━━━━━━━━━━━━━━━━━二、scanf()函数scanf()函数是格式化输入函数,它从标准输入设备(键盘)读取输入的信息。其调用格式为:scanf("<格式化字符串>",<地址表>);格式化字符串
6、包括以下三类不同的字符;1.格式化说明符:格式化说明符与printf()函数中的格式说明符基本相同。2.空白字符:空白字符会使scanf()函数在读操作中略去输入中的一个或多个空白字符。3.非空白字符:一个非空白字符会使scanf()函数在读入时剔除掉与这个非空白字符相同的字符。地址表是需要读入的所有变量的地址,而不是变量本身。这与printf()函数完全不同,要特别注意。各个变量的地址之间同","分开。例1:main(){inti,j,*p;printf("i,j=?");scanf("%d,%d,%d",&i,&j,p);printf(“输入的数据
7、是:%d”,i);}上例中的scanf()函数先读一个整型数,然后把接着输入的逗号剔除掉,最后读入另一个整型数。如果","这一特定字符没有找到,scanf()函数就终止。若参数之间的分隔符为空格,则参数之间必须输入一个或多个空格。说明:(1).对于字符串数组或字符串指针变量,由于数组名和指针变量名本身就是地址,因此使用scanf()函数时,不需要在它们前面加上"&"操作符。例2main(){int*p1,i=10;*p=i;char*p,str[20];scanf("%s",p);/*从健盘输入字符串*/scanf("%s",str);printf("%s
8、",p);/*向屏幕输出字符串*/printf("%s",