分享

C语言中putchar输出“cd”,再输入“hg”不能紧接着“cd”而要另起一行输入,为什么?

 山峰云绕 2019-02-21

https://www.toutiao.com/a6660237590660120835/

我们使用C语言编程时,从键盘输入C语言字符串的时候,最后通过按下回车键把这些字符串送给C程序处理,这里的回车键会产生一个回车符,这是关键。可能题主的问题很多人看不懂,所以我写一个C程序来描述这个问题。

1、C程序来描述题主的问题




上述C程序不难,就是使用C语言的getchar函数从缓冲区中读入一个个的C字符,再通过putchar函数把这些字符再一个个地输出。运行结果如下:



好了,我要问各位一个问题:putchar函数输出“C Program”之后,我继续输入“C++ Program”,为何系统不让我从“C Program”后面继续输入?也就是为何不是这个样子的输入:C Program C++ Program

系统让我另起一行输入了,这是为啥?

2、缓冲区有换行符

我在输入字符串“C Program”后,会按下回车键把这一段C字符串送给C程序处理,此时会产生一个“换行符”,也就是此时的字符串变成“C Program\n”。

那么getchar函数会一个一个地读取这些C字符,然后通过putchar函数一个一个地输出这些字符。当getchar函数读入换行符“\n”时,putchar函数就会输出这个换行符,也就是屏幕的光标已经移到下一行了,所以当你输入字符串“C++ Program”时,就是另起一行输入了。

3、留一个题目

那么现在我把上述C程序再改写下,如下所示:



我在while循环结束之后,在C程序第12行又添加了一条puts语句,如果我的输入还是“C Program”和“ C++ Program”,那么请问此时输出的字符串“C and C++ Program”将会显示在哪个位置?你知道吗?

https://www.toutiao.com/a6660237590660120835/



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多