C语言的语法基础

2.2.2非格式化输入、输出函数

标准格式化输入、输出函数可以指定输入、输出的格式,使用起来方便、如意,但函数编译后程序代码较大。某些程序,不要求指定输入、输出格式,这时用非格式化输入、输出函数也非常方便,并且函数编译后程序代码较小,效率高。非格式化输入、输出函数主要用于字符和字符串的输入和输出,调用时要在程序中使用文件包含#inclulde "stdio.h" 。本节介绍单个字符的非格式化输入、输出函数,关于字符串的非格式化输入、输出函数我们将在第六章介绍。

1。putchar函数

putchar函数把一个字符输出到标准输出设备(通常指定为显示器)上。其调用格式为:

putchar(ch);

其中ch为一个字符变量或一个字符常量(包括转义字符常量), putchar(ch)函数与printf("%c", ch)函数的作用等同。例如以下程序段每条语句均向屏幕输出字符“A”。

putchar('A');    putchar('\101');    putchar('\x41');

putchar(65);    putchar(0101);     putchar(0x41);

    2。getchar函数

getchar函数的作用是从标准输入设备(通常指键盘)上读入一个字符。其调用形式为:

getchar();

它接收标准输入缓冲区中的一个字符,对空白字符也一并接收,并带回显(显示键盘所按的字符)。执行到getchar函数时,等待输入字符,直到按回车才结束,回车前的所有输入字符都将逐个显示在屏幕上。但只有第一个字符被getchar函数接收。

[例2.3]

#include "stdio.h"

main()

{

char ch;

ch=getchar();       /*从键盘读入字符直到回车结束, 把第一个字符赋值给ch*/

putchar(ch); /*显示输入的第一个字符*/

putchar('\n'); /*回车换行*/

getch();        /*等待按任一健程序结束*/

}

    3。getch和getche函数

getch和getche函数的作用都是从标准输入设备(通常指键盘)上读入一个字符。其调用形式分别为:

getch();

getche();

getch函数读入的字符不会回显在屏幕上,而getche函数将读入的字符回显到屏幕上。它们与getchar函数不同之处在于,getch和getche函数不必输入回车才结束,只要输入一个字符,该字符立即被接收,程序继续执行下一条语句。利用这一特点,这两个函数经常用于交互输入的过程中完成暂停功能。

[例2.4] 输入一位学生三门课学习成绩,求出该学生三门课平均成绩,按Esc退出。

#include "stdio.h"

const char ESC=27;

main()

{ float f1, f2, f3, aver;

do      /* do/while 循环语句条件成立时,反复执行{...}中的语句 */

{

printf("请输入学生的三门课学习成绩:");

scanf("%f%f%f", &f1, &f2, &f3);

aver = (f1+f2+f3)/3.0;

printf("该学生的三门课平均成绩是:%6.2f\n", aver);

printf("按Esc退出,按其它键继续...\n");

} while( getch() != ESC );  /*等待,按Esc退出,按其它键继续计算*/

}

运行结果:

请输入学生的三门课学习成绩:67.5 78.5 89

该学生的三门课平均成绩是: 78.33

按Esc退出,按其它键继续...

按其它键继续计算,直到按下Esc键,程序结束。

Tags:

发表评论