C语言数据的输入与输出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言数据的输入与输出
一.Printf函数
函数原型在头文件stido.h中(使用时可以不包括)
printf函数的返回值等于成功输入得数据的个数
1.printf函数得一般调用形式
printf(格式控制字符串,输出项列表)
格式控制字符串包括:
(1)格式指示符
格式:%[标志][宽度][.精度][ [ h|l ] <类型>]
(2)转义字符
如:'\n' , '\0'
(3)普通字符
如:printf("max=%d,min=%d\n", a, b);
“max=”和“,min=”是普通字符;“%d”是格式指示符;“\n”是转义字符;
a和b是输出类表中的输出项(可以是常量、变量、或表达式)。
2.print函数中常用得格式控制说明
(1)数据类型控制字符
(2)数据类型修饰符
数据类型修饰符在%和数据类型控制符之间
如:长整型 "%ld" ,短整型 "%hd"
(3)输出数据所占得宽度与精度
1)在%与格式字符之间插入一个整数来指示输出宽度。
若指定得输出宽度不够,系统自动以数据实际值得宽度作为输出宽度;如果指定的输出宽度多于数据实际所需宽度,数据右对齐,左边补以空格。
如:printf("%5d\n",42); \*输出结果: 42*\
2)float或double类型得实型数可以用“整数1.整数2”的形式在指定总宽度的同时指定小数位得宽度。“整数1”指定输出数据得总宽度(小数点也要计算在内),“整数2”称之为精度,即小数位的位数。
注意:输出数据得实际精度并补取决与格式控制中的域宽和小数得位宽,而是取决于数据在计算机内的存储精度。
(4)标志控制字符
1)输出数据左对齐的标志字符“-”,在指定输出宽度之前。
如:printf("%-5d##\n",24); \*输出结果:24 ##*\
2)输出数字总是带正负号得标志字符“+”,在%和格式字符之间(或指定得输出宽度前)
如:printf("%+d,%+d\n",100,-200); \*输出结果:+100,-200*\
3)在输出数据前加前导0,可以在指定输出宽度得同时,在数据前面得多于空格处填以数字0。
如:printf("%05d\n",59); \*输出结果:00059*\
二.Scanf函数
函数原型在头文件stdio.h中(使用时可以不包括)
Scanf函数的返回值等于成功输入得数据的个数。
1.scanf函数得一般调用形式
scanf(格式控制字符串,地址列表)
格式控制字符串:%[*][输入数据宽度][ h|l ]<类型>
地址列表是各变量得地址,如:&a,&b
2.scanf函数输入数据时需要注意
(1)格式控制中得数据类型与地址列表中的数据的类型应该一一对应匹配。
如果类型不匹配,系统并不给出错误信息,但不可能得到正确得数据。
(2)当输入的数据多于输入项时,多余的数据并不消失,而是留在缓冲区中,
作下一个输入操作时的输入数据。为不影响下一个输入操作,可以在下一个输入函数之前用清除函数fflush(stdin)清除输入缓冲区中的残余数据。
(3)若在scanf的格式控制字符串中插入了其他字符,则在输入是要求一一对
应的位置原样输入这些字符。
如:scanf("Input a,b,c:%d%d%d",a,b,c);
要求按以下形式输入:Input a,b,c:1 2 3
(4)字符型数据的输入
程序运行时,在键盘上输入一个字符A后按回车键(要完成输入操作必须按回车键),程序在执行scanf("%c",&c1)时,给变量c1赋值A,但回车符依然留在缓冲区中,执行scanf("%c",&c2)时,变量c2得到该回车符。为避免此问题,可以在第二个输入函数前加入清除输入缓冲区的函数fflush(stdin)。
三.Putchar
四.Getchar
五.Puts函数
六.Gets函数
输入字符串