【发布时间】:2014-04-03 19:01:34
【问题描述】:
定义:一个文本流是一个序列 字符分成几行;每行包含零个或多个字符,后跟一个换行符。此定义逐字逐句来自 K&R。
我正在阅读 K&R The C Programming Language,我对输入和输出的发生方式有些困惑。所以我写了一个小程序来看看它是如何工作的,这就是我得到的:
while 循环获取一个字符并将其保存为char c 然后执行
putchar(c) 以此类推,直到我点击返回(结束 文本流),让我感到困惑的部分是:当我键入输入 文本流时,putchar(c) 没有t 似乎正在工作(肯定不会在循环的每次迭代中打印c),但是一旦我点击返回,我就会返回我输入的内容。
我认为以下情况正在发生,但我希望有人可以确认或更正。只要我在命令提示符的第一行执行inputOutput.exe,它就会设置为接收输入文本流(这不是程序的结果,而是命令提示符的工作方式。 ) 当我在命令提示符中输入文本时,每个字符都被putchar(c) 发送到“输出文本流”,但是在我按下键盘上的回车键之前,该流在命令提示符中不可见,此时命令Prompt 结束输入模式,然后执行最后一个 putchar(c),它调用当前输出 文本流 以显示在命令提示符上。如果这是正确的,那么在我看来,代码表现本身的方式是受命令提示符规则的约束,而不是受 C 语言的约束,这是正确的吗?
【问题讨论】: