用getchar和putchar函数进行字符的输入和输出

除了可以用cin和cout语句输出和输出字符外,C++还保留了C语言中用于输入和输出单个字符的函数,使用很方便。其中最常用的有getchar函数和putchar函数。

putchar函数(字符输出函数)

putchar函数的作用是向终端输出一个字符,例如:

putchar (c);

它输出变量c的值。

例:输出单个字符

编写程序

1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;
int main()
{
char char1, char2, char3;
char1 = 'B'; char2 = 'O'; char3 = 'Y';
putchar(char1); putchar(char2); putchar(char3); putchar('\n');
putchar(66); putchar(79); putchar(89); putchar(10);
}

运行结果

BOY

BOY

可以看到,用putchar可以输出转义字符,putchar('\n')的作用是输出一个换行符,使输出的当前位置移到下一行的开头。putchar(66)的作用是将66作为ASCII码转换为字符输出,66是字母’B‘的ASCII码,因此putchar(66)输出字母‘B’。其余类似。putchar(10)中的10是换行符的ASCII码,putchar(10)输出一个换行符,作用 与putchar('\n')相同。

也可以输出其他转义字符。如:

putchar(‘\101’)                    //输出字符’A‘,八进制的101是’A‘的ASCII码

putchar(‘\)                           //输出单引号字符’

putchar(‘\015’)                   //输出回车,不换行,使输出的当前位置移到本行开头

getchar函数(字符输入函数)

此函数的作用是从终端(或系统隐含指定的输入设备)输入一个字符。getchar函数没有参数,其一般形式为

getchar ( )

函数的值就是从输入设备得到的字符。

例:输入单个字符

编写程序

1
2
3
4
5
6
7
8
#include <iostream>
using namespace std;
int main()
{
char input1;
input1 = getchar(); putchar(input1 + 32); putchar('\n');
return 0;
}

在运行时,如果从键盘输入大写字母‘A’并按回车键,就会在屏幕上输出小写字母‘a’。请注意,getchar()只能接收一个字符。getchar函数得到的字符可以赋给一个字符变量或整型变量,也可以不赋给任何变量,作为表达式的一部分。例如,上面的程序中的第6行可以用下面一行代替:

putchar(getchar( ) + 32);putchar(‘\n’);

因为getchar()读人的值为’A’,’A’+32是小写字母’a’的ASCII码,因此 putchar函数输出 ‘a’。此时不必定义变量input1。

也可以用cout输出 getchar 函数得到字符的ASCII的值:

cout << getchar( );

这时输出的是整数97,因为用getchar()读入的实际上是字符的ASCII码,现在并未把它赋给一个字符变量,cout就按整数形式输出。如果改成:

cout << (char1 = getchar( ));        //设char1已定义为字符变量

则输出字母’a‘,因为要求输出字符变量c的值。

可以看到,用putchar和getchar 函数输出和输入字符十分灵活方便,由于它们是函数,所以可以出现在表达式中,例如:

cout << (c=getchar( ) + 32);

用scanf和printf函数进行输入和输出(非常不推荐)