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/ |
|
来自: 山峰云绕 > 《C语言数据结构描述Windows程序设计》