输入与输出

输入与输出需要用到一个头文件stdio.h,在程序开头要用预处理指令将这个头文件包含进去:

#include<stdio.h>

这个头文件中其中包含的两个库函数:printf与scanf,分别负责输出与输入。除此之外,C语言中的标准输入输出函数还有其他几个函数,分别是:putchar(输出字符)、getchar(输入字符)、puts(输出字符串)、gets(输入字符串)。

首先要对输入输出做一些说明:

a. 所谓输入与输出是相对于计算机本身而言的,从计算机像输出设备(显示器、打印机等)输出数据称为输出,从输入设备(键盘、光盘、扫描仪等)像计算机输入数据称为输入。

b. C语言本身不提供输出与输出函数,这两个函数是C语言标准库中提供的。

c. 在使用这两个函数时,一定要在程序开头用预处理指令#include将这个头文件包含进去。

1.标准输出函数 printf

标准输出函数的一般格式为:

printf(“格式控制” , 输出表列);

格式控制是由双引号括起来的一个字符串,称为格式控制字符串,它包含两个部分,分别是格式声明(如%d,%f)和普通字符,普通字符即为在输出时照原样输出的字符。“输出表列”是程序要输出的变量名或表达式,输出表列格式声明符一一对应。

由于输出函数是函数,所以格式控制和输出表列都是这个函数的参数。这样的话,标准输出函数的一般形式可以表示为:

printf(参数1 , 参数2 , 参数3 , …… , 参数n);

执行输出语句时,参数2~参数n按照参数1中所指定的格式输出。参数1是必须要有的,参数2~参数n是可选的。下面是一个标准输出函数的例子:

#include<stdio.h>
int  main( )
{
    int  a = 1, b = 2, c = 3, d = 4, e = 5, f = 6,g = 7;
    printf(“Number is %d%d%d%d%d%d%d\n”, a, b, c, d, e, f, g);
    return 0;
}

这个程序的执行结果为:

Number is 1234567

需要提到的是,格式控制符决定输出表列中变量里存放的数据如何输出。前面说过,一切形式的数据在计算机中都是以二进制形式的编码进行存放,也就是说,在计算机的存储结构中,一切的数据的存储方式都是一样的。在输入时,通过格式控制将不同格式的数据转换成二进制编码进行存储,在输出时,将二进制编码按照需要的格式进行输出。上述内容可以用以下例程说明:

int  a = 64;
printf(“%d、%c”,a,a);

上述输出语句输出结果是:

64、@

C语言中的格式控制符大概有以下几种:

格式控制符 说明
%d、%i 以带符号十进制形式输出整数
%o 以八进制无符号形式输出
%x、%X 以十六进制无符号形式输出整数,X、x分别代表输出时字母大小写
%u 以无符号十进制形式输出整数
%c 以字符形式输出
%s 以字符串形式输出
%f 以小数形式输出单、双精度数,隐含输出6位小数
%e、%E 以指数形式输出实数,E、e代表输出时E(e)的大小写

需要特别提到的是,用%f输出时,可以控制输出宽度与保留的小数位数。例如%5.2f,表示输出时总共保留5位有效数字,2位小数。例如:

float  a=3.14159;
printf(“%2.1f” , a);

这个输出语句的运行结果是:

3.1

可以在输出函数中参数1的位置使用转义字符。由于格式控制符由百分号加一个字母组成,如果想输出百分号的话,需要用两个百分号(%%)表示。例如:

printf(“%f%%” , 1.0 / 3);

输出结果为

0.333333%

2.标准输入函数 scanf

标准输入函数的一般形式为:

scanf(“格式控制” , 地址表列);

scanf函数的第一个参数为格式控制,与输出函数不同的是,用户在用scanf输入的时候,必须严格按照scanf函数中格式控制字符串中的格式输入。scanf函数中的格式控制符与printf函数中大致相同。 需要注意到的问题是,scanf函数中参数2~参数n是“地址表列”,而不是单单的变量名表列。例如:

scanf(“%d%d%d”, a, b, c);

这个语句是错误的,应该改为:

scanf(“%d%d%d”, &a, &b, &c);

“&”符号称为“取地址符”,“&a”代表变量a的地址。关于地址的相关内容请参阅第五部分:数组与指针。现在我们只需要知道应该为scanf函数提供你想为其输入值的地址即可。

3.字符数据的输入和输出

输入输出字符数据时用到的函数是putchar和getchar,这两个函数分别只能输出和接受一个字符。例如:

char a,b,c;
a = getchar( );
b = getchar( );
c = getchar( );
putchar(a);
putchar(b);
putchar(c);

在2~4行分别为a、b、c输入一个字符,完成输入后会把a、b、c存放的字符原样输出。再例如:

int a = 65, b = 66, c = 67;
putchar(a);
putchar(b);
putchar(c);

程序的输出结果是:

ABC

按照同样的方式,putchar也可以输出转义字符。

这本书是xt写的上次修改: 2019-04-18 15:24:43

results matching ""

    No results matching ""