作者:h53695088 | 来源:互联网 | 2023-08-16 15:07
getchar(和putchar(是一对字符输入输出函数.getchar(不带任何参数,他从输入序列中返回下一个字符。而且,getchar(和putchar(不
getchar (和putchar ) )是一对字符输入/输出函数。
getchar ) )没有参数,他从输入序列返回以下字符: 例如,以下语句读取以下字符输入并将该字符的值分配给变量ch :
ch=getchar (; putchar ()函数打印参数。 例如,以下语句将以前分配给ch的值打印为字符:
Putchar(ch; 这两个函数只处理字符,因此通常比scanf (或printf )函数更快更有用。 此外,getchar (和putchar ) )不需要转换说明。
接下来,让我们看看以下示例中它们是如何工作的。 本例为"文字为空格时,直接打印; 否则,打印原始字符的ASCII序列中的下一个字符”
# include stdio.h # definespace ' '/space是空白字符int main () { char ch; ch=getchar (; 读取//1个字符的while (ch!='\n ' )//如果读取的下一个字符不是换行符,即行未结束,{if(ch==space(/空格putchar(ch ) ); ELSEPutchar(ch1; //改变其他文字的ch=getchar (; //获取下一个字符}putchar(ch; //循环结束,读入的最后一个字符为“\n”,打印换行代码return 0; }输入连续字符后,getchar ) )的作用是一次读取一个字符。 当然,如果最后输入Enter,getchar ) )也会最终读取“\ n”。
以下是该程序的输入示例。 第1行的输入,第2、3行的输出)。
从CALL ME HAL.DBMM NF IBM/上的示例输入中可以看到,空格按原样打印,但其他字符是ASCII的下一位,输出中的最后一行为空行(因为在输入时在最后一个键盘上输入了enter,所以会换行)
看看下面的代码。
#include stdio.hint main () { char ch; while((ch=Getchar ) )!='# ' ) {putchar(ch ); }返回0; }运行此程序后,与用户的交互如下。 粗体文本是输入。
Hello, there. My [enter]
Hello,there. My name is# LuAo. [enter]
name is
将getchar ()导入到#中时,可以看到循环已结束,不再导入到下一个中。
键盘输入通常是行缓冲输入。 意味着在发生换行时刷新缓冲区,即打印。 因此,可以看到上述的用户操作效果。
应该注意的是,我们经常混合使用getchar ()和scanf ) )。 如果我们混合使用,如果使用getchar (在调用之前使用scanf ) )在输入行中留下换行符,则会出现一些问题。 我们可以用以下方法处理这个问题。
wile (获取器)!='\n ' ) continue; 消除scanf在输入行中留下的一个或多个换行符是getchar (和putchar )的基本用法
第一次写博客,欢迎大家的指导!