前2章用到的printf()函数,是C语言中的带格式的标准输出函数。C语言的函数都封装在不同的函数库里面,编程时要用到某个函数时, 只要用include语句申明一下,被申明过的函数库中的所有函数就可以在程序的任何地方使用。这2章要讲述的基本输入输出函数,都 在stdio.h中被定义。
函数getch()是从终端输入一个字符。注意:是一个字符,也就是说,该函数调用一次只能得到一个字符,想要得到若干字符,只能调用若干次。
函数putchar()是向终端输出一个字符。注意:这儿也是一个字符,也就是说,该函数调用一次只能输出一个字符,要输出若干字符,只能调用若干次。
![]()
#include<stdio.h>intmain(void) {charich1;intich2,ich3;charch1 = 'q';charch2 = 'u';charch3 = 'a';charch4 = 'n'; ich1 = getchar(); //字符类型实际是整型,只是范围小点而已 ich2 = getchar(); //所以字符赋给整数变量没有关系 ich3 = getchar(); //这三句在屏幕上输入“xue”后回车 putchar(ch1); putchar(ch2); putchar(ch3); putchar(ch4); putchar(ich1); putchar(ich2); putchar(ich3); putchar('\n'); //这是回车字符return0; }
上例中调用了3次getchar()函数,输入时请注意:
上面这些令人不满的地方,主要是由于getchar()函数使用了键盘缓冲区,一直等到有回车时,getchar()函数才接受字符。因此有人对此函数进行了扩充, 函数名为getche(),不再使用键盘缓冲,输入的字符立即就能被接受。这个函数不是存放在stdio.h中,而是存放在conio.h中。上面程序如下修改便好用多了。类似函数还有很多,如getch(),这和getche()的区别是,getch()函数在输入后并不显示在屏幕上,其它功能和getche()相同,也是定义在conio.h中。
![]()
#include<stdio.h>#include<conio.h>intmain(void) {charich1;intich2,ich3;charch1 = 'q';charch2 = 'u';charch3 = 'a';charch4 = 'n'; ich1 = getche(); //改进后的字符输入函数 ich2 = getche(); ich3 = getche(); putchar('\n'); //这是回车字符 putchar(ch1); putchar(ch2); putchar(ch3); putchar(ch4); putchar(ich1); putchar(ich2); putchar(ich3); putchar('\n'); //这是回车字符return0; }
前面的例子中,我们已经看很多“\n”,它表示输出时显示一个回车。回车字符是控制字符,无法输入在字符串中间。因此,C语言用“转义字符” 来代替这一类的控制字符。注意:%的输出并不是用“\%”表示,而是用“%%”表示,好象就这一个是特殊的。
| 字符形式 | 功 能 |
|---|---|
| \0 | 空字符(NULL) |
| \n | 换行 |
| \t | 横向跳格(Tab) |
| \v | 竖向跳格(|) |
| \b | 退格 |
| \r | 回车 |
| \f | 换页字符 |
| \\ | 反斜杠"\"字符 |
| \' | 单引号(撇号)字符 |
| \" | 双引号字符 |
| \a | 响铃字符 |
| \? | 问号字符 |
| %% | 百分号字符 |
| \ddd | 1~3位8进制数所代表的字符 |
| \xhh | 1~2位16进制数所代表的字符 |