数据的输入与输出

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二章数据的输入与输出

1. printf函数调用的一般形式

printf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中。但作为一个特例,不要求在使用printf 函数之前必须包含stdio.h文件。

printf函数调用的一般形式为:

printf(“格式控制字符串”,输出表列)

其中格式控制字符串用于指定输出格式。格式控制串可由格式字符串和非格式字符串两种组成。格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等。如:

“%d”表示按十进制整型输出;

“%ld”表示按十进制长整型输出;

“%c”表示按字符型输出等。

非格式字符串在输出时原样照印,在显示中起提示作用。

输出表列中给出了各个输出项,要求格式字符串和各输出项在数量和类型上应该一一对应。d格式符。用来输出十进制整数。有以下几种用法

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

②%md,m 为指定的输出字段的宽度。如果

【例如】分析下面程序的结果

#include

main()

{

int a=132,b=1234;

printf("%d,%d\n",a,b);

printf("%4d\n",a);

printf("%4d\n",b); }

【例如】分析下面程序的结果

#include

main()

{

long a=09;

printf("%ld\n",a);

}

c格式符,用来输出一个字符

【例如】分析下面程序的结果

#include

main()

{

char c='a';

int i=97;

printf("%c,%d\n",c,c);

printf("%c,%d\n",i,i);

}

【例如】分析下面程序的结果

#include

main()

{

printf("%s\n","CHINA");

printf("%3s\n","CHINA");

printf("%7.2s\n","CHINA");

printf("%.4s\n","CHINA");

printf("%-5.3s\n","CHINA");

}

scanf函数称为格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中。scanf函数的一般形式

scanf函数是一个标准库函数,它的函数原型在头文件“stdio.h”中,与printf函数相同,C语言也允许在使用scanf函数之前不必包含stdio.h文件。

scanf函数的一般形式为:

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

其中,格式控制字符串的作用与printf函数相同,但不能显示非格式字符串,也就是不能显示提示字符串。地址表列中给出各变量的地址。地址是由地址运算符“&”后跟变量名组成的。

例如:&a, &b

分别表示变量a和变量b 的地址。

这个地址就是编译系统在内存中给a,b变量分配的地址。在C语言中,使用了地址这个概念,这是与其它语言不同的。应该把变量的值和变量的地址这两个不同的概念区别开来。变量的地址是C编译系统分配的,用户不必关心具体的地址是多少。

变量的地址和变量值的关系如下:

在赋值表达式中给变量赋值,如:

a=567则,a为变量名,567是变量的值,&a是变量a的地址。

但在赋值号左边是变量名,不能写地址,而scanf函数在本质上也是给变量赋值,但要求写变量的地址,如&a。这两者在形式上是不同的。&是一个取地址运算符,&a是一个表达式,其功能是求变量的地址。

【例如】从键盘中输入3、4、5,分析下面程序输出的结果

#include

main()

{

int a,b,c;

printf("请输入三个整数:\n");

scanf("%d%d%d",&a,&b,&c);

printf("%d,%d,%d\n",a,b,c);

}

②可以指定输入数据所占列数,系统自动按它截取所需数据

【例如】从键盘中输入123456,分析下面程序输出的结果

#include

main()

{

int a,b;

scanf("%3d%3d",&a,&b);

printf("%d,%d\n",a,b);

}

③如果在%后有一个“*”附加说明符,表示跳过它指定的列数.例如

【例如】从键盘上输入12、345、67,分析下面程序输出的结果

#include

main()

{

int a,b;

scanf("%2d%*3d%2d",&a,&b);

printf("%d,%d\n",a,b);

}

使用scanf函数时应注意的问题

①scanf函数中的“格式控制”后面应当是变量地址,而不应是变量名。

②如果在“格式控制”字符串中除了格式说明以外还有其他字符,则在输入数据时在对应位置应输入与这些字符相同的字符。例如

【例如】从键盘上输入4,5。分析下面程序输出的结果

#include

main()

{

int a,b;

scanf("%d,%d",&a,&b);

printf("%d,%d\n",a,b);

}

【例如】从键盘上输入4空格5。分析下面程序输出的结果

#include

main()

{

int a,b;

scanf("%d%d",&a,&b);

printf("%d,%d\n",a,b);

}

【例如】从键盘上输入4空格5。分析下面程序输出的结果

#include

main()

{

int a,b;

scanf("%d %d",&a,&b);

printf("%d,%d\n",a,b);

}

【例如】从键盘上输入12:23:36。分析下面程序输出的结果

#include

main()

{

int a,b,c;

相关文档
最新文档