在使用scanf()和printf()函数时会遇到一些特殊情况。
C语言还可以使用其它的输入函数来处理一些特殊情况,如getchar()和fputs()。这两个函数更适合处理一些特殊情况,如读取单个字符或包含空格的字符串。 可以使用getchar 函数和 putchar 函数來代替调用scanf 函数和printf 函数。每次调用getchar 函数时,它会读入一个字符,并返回这个字符。需要使用复制操作将返回值存储在变量中。和scanf 函数一样,getchar 函数也不会在读取时跳过空白字符。putchar 函数用来写单独的一个字符,如putchar(ch)。
示例
ch = getchar();//等同于scanf("%c",&ch);
ch = putchar();//等同于printf("%c",ch);
PS:
由于getchar 函数和 putchar 函数只用来处理字符,所以它们的效率比scanf()和printf()函数更高。 getchar 函数没有参数, putchar 函数打印它的参数。
详见CPrimerPlus P217
程序引入:该程序从键盘读取输入的字符,并把这些字符发送到屏幕。程序使用while循环,当读取到‘#’字符时就停止。
#include<stdio.h>
int main()
{
char ch;
ch = getchar();
while(ch != '#' )//测试
putchar(ch);//处理字符
ch = getchar();//读取
return 0;
}
优化:把测试和读取合并成一个表达式。
#include<stdio.h>
int main()
{
char ch;
while((ch = getchar()) != '#' )//熟练记忆这种处理键盘输入的。
putchar(ch);
return 0;
}
这体现了