我的任务是创建一个测试程序c
,读取标准输入的内容然后打印它们。
但我有一点疑问:究竟是什么standard input
?
是我在键盘上输入的吗?它是我必须阅读的文件吗?
两个都?
谢谢。
“标准输入”是指一个特定的输入流,它与文件描述符 0 相关联。它是从中读取scanf
, getchar
, gets
(你永远不应该使用)等的流。基本上,任何不将 aFILE *
作为参数的 stdio 输入函数都是从标准输入中读取的。
它通常与您的控制台相关联,但可以重定向以从文件或其他设备读取。
例如,
scanf( "%d", &someVal );
相当于
fscanf( stdin, "%d", &someval );
这两个函数都从标准输入 ( stdin
) 读取。
它是您从命令行运行程序时在键盘上键入的内容
它是为程序定义的 3 个标准流之一
当您在命令行上启动程序时,您可以在终端中键入一些文本,该文本将被传递到程序的标准输入流
其他 2 个流是显示在终端上的标准输出,以及显示不应该在标准输出中的错误消息的错误流
在大多数终端上,您可以将流重定向到文件和从文件中重定向,如下所示:
myprog.exe < file_to_read.txt
其中 file_to_read.txt 将被读取并传递到输入输入流中
Unless redirected, input is expected from the keyboard which started the program.