大一第一学期期末C语言程序设计笔记(三)
因为考完了,没什么心思整理了,笔记可能会有点乱。大家将就看看吧~
1、输入
在C语言中,没有专门的输入输出语句,所有的输入输出操作都是通过对标准I/O库函数的调用实现。最常用的输入输出函数有scanf( )、printf( )、getchar( )和putchar( )。
<1>putchar函数
当我们要把字符一个一个输出时,可以用putchar函数,它是一个专门输出字符的函数。其一般形式是:putchar(<字符表达式>)
该函数的功能是输出“字符表达式”的值。
putchar(‘A’); //输出字符‘A‘;
putchar(‘A’+1); //输出字符‘B‘;
<2>printf 函数
1)printf格式符
格式字符 |
说明 |
d |
以带符号的十进制形式输出整型数(正数不输出符号) |
o |
以8进制无符号形式输出整型数(不输出前导符0) |
x |
以16进制无符号形式输出整型数(不输出前导符0x) |
u |
以无符号10进制形式输出整型数 |
c |
以字符形式输出,只输出一个字符 |
s |
输出字符串 |
f |
以小数形式输出单、双精度数,隐含输出6位小数 |
e |
以标准指数形式输出单、双精度数,数字部分小数位数为6位 |
g |
自动选用%f或%e格式中输出宽度较短的一种格式,不输出无意义的0 |
2)d格式符
用来控制整型数按十进制形式输出。
%d,按整型数据的实际长度输出。
%md,m为指定的输出字段的宽度。如果数据的位数(包括负号)小于m,则右对齐左端补以空格,若大于m,则按实际位数输出。
%-md,m为指定的输出字段的宽度。如果数据的位数小于m,则左对齐补以空格,若大于m,则按实际位数输出
%ld,输出长整型数据,也可以%mld,%-mld
3)x格式符
以16进制形式输出整型数据。不会出现负的十六进制数。可以用“%x”输出长整型数。可以指定输出字段的宽度,如“%12x”。x格式符一般用于输出正整数或无符号类型的数据。
4)u格式符(补码)
用来输出unsigned数据,即无符号数,以十进制形式输出。
一个有符号整型数(int型)也可以用%u格式输出,此时把符号位当作数值看待。
一个unsigned型数据也可以用%d格式输出,按相互赋值的规则处理。unsigned数据也可用%o或%x格式输出。
5)c格式符
一个整数,只要它的值在0~255范围内,也可以用字符形式输,在输出前将该整数转换成换成相应的ASCII字符;反之,一个字符数据也可以用整型数形式输出,但输出的是其ASCII码值。
6)s格式符
%s,用来输出一个字符串(不包括双引号)。用“%s”输出时,遇‘\0’结束。
数组中有多个‘\0’时,遇第一个结束。scanf中%s输入时,遇空格或回车结束。
%ms,输出的字符串占m列,若字符串长度小于m,则“右对齐”,左边补空格。如字 符本身长度大于m,则突破m的限制,将字符串全部输出。
%-ms,若字符串长度小于m,则在m列范围内,“左对齐”,右边补空格。如字符本身 长度大于m,则突破m的限制,将字符串全部输出。
%m.ns,输出占m列,但只取字符串中左端n个字符。这n个字符输出在m列的右侧, 左边补空格。
%-m.ns,其中m、n含义同上,n个字符输出在m列范围的左侧,右面补空格。如果m 省略或n>m,则m自动取n值,即保证n个字符正常输出。
7)e格式符
以指数形式输出实数。
%e,不指定输出所占的宽度和数字部分小数位数,由系统自动指定给出6位小数, 指数部分占5位(如e+002),其中“e”占一位,指数符号占一位,指数占3位。数值按标准化指数形式输出(即小数点前必须有而且只有一位非零数字)。
%m.ne和%-m.ne,m、n及“-”字符含义与之前相同。此处n为指数的数字部分(又称尾数)的小数位数。如省略n,则n=6。如省略m,则自动使m等于数据应有的长度,即m=7+n。
8)g格式符
用来输出实型数,它根据数值的大小,自动选f格式或e格式(选择输出时占宽度较小的一种),且不输出无意义的零。
例:
若f=123.468,则:
printf(”%f,%e,%g”,f,f,f);
输出如下:
123.468000,1.234680e+002,123.468
用%f格式输出占10列,用%e格式输出占13列,用%g格式时,自动从前面两种格式中选择短者(今为%f格式为短),故选择按%f格式输出,且小数位中的最后三位为无意义的0,不输出。%g格式用得比较少。
2)格式字符要用小写字母,如%d不能写成%D。
可以在printf函数中的“格式控制”字符串内包含转义字符,如“\n”、“\t”、“\b” 、“\r”、“\f”、“\377”等,它们将按转义字符意思输出。
上面介绍的d、o、x、u、c、s、f、e、g等字符,如不是用在“%”后面就作为普通字符,原样输出。
如果想输出字符“%”,可以在“格式控制”字符串中用连续两个%表示,或者使用转义字符“\45”。
不同的系统在格式输出时,输出结果可能会有一些小的差别,例如用%e格式符输出实数时,有些系统输出的指数部分为4位(如e+02)而不是5位(如e+002),前面数字的小数部分为5位而不是6位等等。
〈3〉getchar 函数
此函数的作用是从键盘输入一个字符,并把这个字符作为函数的返回值。getchar函数没有参数,其一般形式为:getchar()。
请注意,getchar()只能接受一个字符。getchar函数得到的字符可以赋给一个字符变量或整型变量。也可以不赋给任何变量。也可以作为表达式的一部分
在一个函数中调用getchar函数,应该在函数的前面(或本文件开头)用:#include<stdio.h>
<4>scanf 函数
字符 |
说明 |
l |
用于输入长整数数据(可用%ld、%lo、%lx),以及double型数据(用%lf或%le) |
h |
用于输入短整型数据(可用%hd、%ho,%hx) |
m(正整数) |
指定输入数据所占宽度(列数) |
* |
表示本输入项在读入后不赋给相应的变量 |
注意: C语言在scanf中不使用%u格式符,对unsigned型数据,以%d、%o或%x 格式输入。
可以指定输入数据所占列数,系统自动按它截取所需数据。
%后的附加说明符”*”,用来表示跳过它相应的数据。
输入数据时不能规定精度。
scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。
如果在“格式控制”字符串中除了格式说明外还有其它字符,则在输入数据时应输入与这些字符相同的字符,即原样输入。
在用“%c”格式输入字符时,空格字符和“转义字符”都作为有效字符输入。
在输入数据时,遇到以下情况时该数据认为结束:
遇空格,或回车键或跳格键(tab键)。
遇宽度结束时,如“%3d”,只取3列。
遇非法输入。1234a123o.26
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。