【发布时间】:2013-10-23 11:26:54
【问题描述】:
我的任务是在c 中创建一个测试程序,该程序读取标准输入的内容然后打印它们。
但我有一点疑问:standard input 到底是什么?
是我在键盘上输入的吗?它是我必须阅读的文件吗?
两个?
谢谢。
【问题讨论】:
-
根据定义,这是一个编号为 0 的文件描述符。 en.wikipedia.org/wiki/Standard_streams
标签: c
我的任务是在c 中创建一个测试程序,该程序读取标准输入的内容然后打印它们。
但我有一点疑问:standard input 到底是什么?
是我在键盘上输入的吗?它是我必须阅读的文件吗?
两个?
谢谢。
【问题讨论】:
标签: c
“标准输入”是指一个特定的输入流,它与文件描述符 0 相关联。它是来自 scanf、getchar、gets 的流(你应该永远不要使用)等,全部阅读。基本上,任何不将FILE * 作为参数的stdio 输入函数都是从标准输入中读取的。
它通常与您的控制台绑定,但可以重定向以从文件或其他设备读取。
例如,
scanf( "%d", &someVal );
等价于
fscanf( stdin, "%d", &someval );
这两个函数都从标准输入 (stdin) 读取。
【讨论】:
这是你从命令行运行程序时在键盘上键入的内容
它是为程序定义的 3 个标准流之一
当您在命令行上启动程序时,您可以在终端中键入一些文本,该文本将被传递到程序的标准输入流
另外两个流是显示在终端上的标准输出,以及显示不应该在标准输出中的错误消息的错误流
在大多数终端上,您可以将流重定向到文件或从文件中重定向,如下所示:
myprog.exe < file_to_read.txt
file_to_read.txt 将被读取并传递到输入输入流的位置
【讨论】:
Unless redirected, input is expected from the keyboard which started the program.
【讨论】: