大一第一学期期末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 

 

 

 

 

 

 

 

 

 

 

 

 

2d格式符

用来控制整型数按十进制形式输出。

%d,按整型数据的实际长度输出。

%md,m为指定的输出字段的宽度。如果数据的位数(包括负号)小于m,则右对齐左端补以空格,若大于m,则按实际位数输出。 

%-md,m为指定的输出字段的宽度。如果数据的位数小于m,则左对齐补以空格,若大于m,则按实际位数输出

%ld,输出长整型数据,也可以%mld,%-mld

 

 

3x格式符

以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位等等。

3getchar 函数

此函数的作用是从键盘输入一个字符,并把这个字符作为函数的返回值。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

 

posted @ 2014-01-18 16:13  微卑.  阅读(5047)  评论(0编辑  收藏  举报