数据的输入和输出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言本身不提供收入输出语句,其输入和输出操作是由其编译系统提供的库函数来实现的,最基本的输入输出函数有printf(),scanf(),getchar(),putchar(),gets(),puts()等.
格式输出函数,格式:printf(“格式控制字符串”[,输出项表]);该函数具体包括以下功能:1.可以指定对不同类型的数据输出;2.给数据类型指定长度修正说明;3.指定输出数据的域宽和精度;4.给输出数据添加需要的说明性字符;5.为输出数据给定对齐方式;6.根据数据的正负为输出数据项添加+,-或空格。
printf()可以输出常量、变量和表达式的值,但格式控制中的格式说明符,必须安装从左向右的顺序,与输出项表中的每个数据一一对应,否则出错。格式字符x,e,g可以用小写字母,也可以用大写字母。使用大写字母时,输出数据中包含的字母也大写。除此之外,其他格式字符必须小写。
格式字符串也成转换控制字符串,可以包含3种字符:格式指示符,转义字符和普通字符。
标志字符
宽度:用十进制整数类表示输出地最少位数。若实际位数多于定义的宽度,则按实际位数输出,若实际位数少于定义的宽度则补以空格或0。
精度:精度格式符以“.”开头,后跟十进制整数。本项的意义是:如果输出数字,则表示小数的位数;如果输出地是字符,则表示输出字符的个数;若实际位数大于所定义的精度,则截去超过的部分。
长度:长度格式符分为h,l两种,h表示按短整型量输出,l表示按长整型量输出。类型:类型字符用以表示输出数据的类型。
基本类型字符
putchar()函数只能用于单个字符的输出,且一次只能输出一个字符。另外,从功能角度来看,printf()函数可以完全代替putchar()函数。
scanf()按规定的格式从键盘输入若干数据到相应的内存单元中。格式字符串的一般形式
为%[*][宽度][h|l]类型字符。在输入数据时,格式说明字段中的类型字符以及类型修饰所指定的类型必须与地址参数的类型一致。
宽度指定该项输入数据所占列数为n,跟在%之后,用十进制整数指定;赋值抑制字符*表示本输入项对应的数据读入后,不赋给相应的变量,即跳过该输入值(该变量由下一个格式指示符输入)。scanf()没有精度控制,要求给出变量地址,给出变量名则会出错。在输入多个数字数据时,若格式控制串中没有非格式字符作输入数据之间的间隔则可用空格,Tab 键或回车作间隔。C编译在碰到空格,Tab键、回车或非法数据时即认为该数据结束。
getchar()从系统隐含的输入设备(如键盘)输入字符。从功能角度来讲,scanf()函数可以完全代替getchar()函数。
字符串输入/输出函数gets()、puts()。函数原型char *gets(char *string)用来输入一个字符串,以按回车键作为结束(换行符”\n”不包含在字符串中),并自动在尾部加空字符‟\0‟。gets()函数返回指向string的指针。函数参数中char *string是指向char类型的指针,等价的写法是char string[].
puts()函数原型int puts(const char *s)。puts()函数用来输出一个字符串,以空字符‟\0‟结束,并在输出时自动换行。如果成功执行,返回最后所写的字符,否则返回EOF(EOF内部值为-1,表示文件结束标志)。当const修饰符用在函数参数表中的指针型参数时,在函数体中将不能修改该指针说指向的变量。
对齐规则:
(1)当指定宽度大于要输出位数时,数右对齐,左端补空格
当前缀'-'号时,想要数左对齐,右端补空格
大大的前提:只有当“指定宽度”存在时,前缀'-'才有意义。
经验:一般来说,左端对齐的形式看上去要美观整齐一点。
***************************************输出正负号的技巧:(记住)例如:
printf("%+d %+d %+d\n",-5,0,5);
只要在中间加个“+”号就行。作用是输出符号位(即,数的正负号)
如果不希望正数的前面出现…+‟号,可用下面的方法
***************************************只要在中间加个“ ”号(即:空格)就行。(记住)例如:
作用:如果一个数是非负数,就在它的前面插入一个空格。
int i;
for(i=-3;i<=3;i++)
printf("% d\n",i); //注意%和d之间有一个空格
输出结果如下:
-3
-2
-1
1
2
3
问题:如果…+‟和… ‟同时出现在“中间”时,要以…+‟为准。
两个符号的共同点:用于对齐输出的数:(尤其对于小数来说)