C语言输入输出

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

C语言输入输出

输入字符getchar()

getchar函数是对单个字符进行输入的函数。它的功能是:从标准输入设备上(键盘)输入一个且只能是一个字符,并将该字符返回为getchar函数的值。

格式: getchar()

例如:

char ch;

ch = getchar();

ch为字符型变量,上述语句接收从键盘输入的一个字符并将它赋给ch。

例1:getchar函数应用。

#include

main()

{

int i;

i=getchar();

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

}

执行本程序时,按下字符‘A’并回车后,显示结果如下:

A:65

在使用getchar函数时,要注意以下几点:

1)getchar函数是不带参数的库函数,但是()不能省略。

2)用户输出一个字符后,只当按“回车”键之后输入的字符才有效;

3)getchar函数只接受一个字符,而非一串字符。上例中:若输入abcde,getchar函数也只接受第一个字符‘a’。4)getchar函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量而是作为表达式的一部分。5)getchar函数不能够显示输入的数据,如果希望显示该数据,必须调用相应的输出函数(例如putchar()库函数)来实现。

还有一个与之相接近的函数是getch()函数。getch()函数表示当用户在键盘上输入一个字符后,该字符立即被计算机接受,可以通过输出函数显示出来,而无需等待“回车”命令。

输出字符putchar()

putchar函数是对单个字符进行输出的函数。它的功能:将指定表达式的值所对应的字符输出到标准设备(终端),每次只能输出一个字符。

格式:putchar(输出项)

putchar()必须带输出项,输出项可以是字符型常量或变量,putchar函数功能与printf函数中的%c相当。

例2:putchar函数的应用

#include"stdio.h"

main()

{

char o=‘O’,k=’K’;

putchar(o);

putchar(k);

putchar(‘\n’);

putchar(‘*’)

}

执行结果为:

OK

*

使用putchar函数时,应注意以下几点:

1)输出的数据只能是单个字符,不能是字符串。’abc’或“abc”都是错误的。

2)被输出的字符常量必须用单引号括起来,如:’\n’、’*’。不能用双引号,导致错误。

3)当输出项是表达式的时候,可以写成a+’32’等形式,不能写成a\n等形式。

另外,与putchar函数的功能和使用方法一样,putch函数也可以输出一个字符。

scanf函数的调用格式

scanf函数原型包含在标准输入输出头文件“stdio.h”中。调用格式:

格式:scanf("格式控制字符串",输入项地址列表);

scanf函数有两项参数,用“”引起来的格式控制字符串和需要接收数据的内存地址。

格式控制字符串:规定数据输入的格式,由转换说明符和普通字符组成,转换说明符和百分号(%)一起使用,用来说明输入数据的数据类型(格式字符)。

输入项地址列表:需要接收数据的变量地址,这些输入项与格式控制字符串在类型和数量上要对应,当有多个输入项时,各个地址名之间以逗号“,”分隔。输入格式和变量类型要保持一致。

在C语言中,一个变量的地址可以通过地址运算符&得到。例如:定义int a,b;则a,b的地址为&a,&b。(见指针一章)

scanf()函数中的输入项是变量地址,输入数据将被放入变量地址所指示的内存单元中,所以在变量前要加地址运算符“&”。

——摘自高克宁雒兴刚主编《高级语言程序设计》

scanf函数的格式说明

格式说明字符串规定了输入项中的变量将以何种类型的数据格式(由转换说明符给出)被输入,格式控制字符串的一般形式:

% [修饰符] 转换说明符

其中修饰符为任选项。

1)格式转换说明符:用于指定相应输入项内容的输入格式,常用格式见下表1。

表1 scanf函数转换说明符

例如:

int x;

scanf(“%d”,&x);

它有两个参数“%d”和&x,第一个参数是格式控制字符串,由%后接一个类型转换说明符构成,指出用户应该输入的数据类型,转换说明符%d说明输入的数据应该是一个整数。第二个参数是变量x的地址,&与变量名连用是将变量x的内存地址告诉scanf函数,计算机然后就会将输入的数据存储在这个地址单元中。

计算机在执行scanf语句时,等待用户输入变量x的值,用户通过键入一个整数并按下回车键响应请求,计算机把用户的输入值赋给变量x,操作完成后,对x的引用就会使用这个值。scanf函数(及后面学习的printf函数)提高了用户与计算机之间的交互性。

在有多个输入项时,如果格式控制字符串中没有普通字符或转义字符作为读入数据之间的分隔符,则一般采用空格符、符或回车键作为读入数据的分隔符,当C语言的编译系统空格符、符或回车键以及非法字符时,会自动认为数据输入结束。计算机等待所有的数据输入结束后的最后一次<回车键>,将读入的数据分别付给对应的变量所指定的内存单元。如果数据的输入少于格式控制字符串中指定的转换说明符的个数,则计算机将一直等待数据的输入,直到所有数据全部被键入为止。

例如:

int x,y;

scanf(“%d%d”,&x,&y);

读入数据的方式可以是:

1<空格>2<回车>

或者

1<回车>

2<回车>

或者

1 2<回车>

采用“%d%d”形式的格式字时,不能使用其它的数据读入方式。例如:1,2<回车>,会使得只有1被送入x单元,而y 单元不能够得到数据2。

但是,在输入多个带有字符型数据时,若以空格符作为分隔符,可能产生非预期的结果。此时,空格将被作为有效字符处理。

例如:

int a;

char ch;

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

如果数据读入方式为:123<空格>a<回车>,本意是期望变量a的值为数值32,变量ch的值为字符a,但实际上用于分隔数据的空格被作为有效字符数据读入并赋予给字符变量ch。为了避免这种情况,可以在格式控制字符串中加入空格作为分隔符。将上面例句改为:scanf(“%d%c”,&a,&ch);此处的%d后的空格,就可以跳过字符‘a’前所有的空格,从而保证非空格数据的正确录入。

相关文档
最新文档