4

我的任务是创建一个测试程序c,读取标准输入的内容然后打印它们。

但我有一点疑问:究竟是什么standard input

是我在键盘上输入的吗?它是我必须阅读的文件吗?

两个都?

谢谢。

4

3 回答 3

5

“标准输入”是指一个特定的输入流,它与文件描述符 0 相关联。它是从中读取scanf, getchar, gets(你永远不应该使用)等的流。基本上,任何不将 aFILE *作为参数的 stdio 输入函数都是从标准输入中读取的。

通常与您的控制台相关联,但可以重定向以从文件或其他设备读取。

例如,

scanf( "%d", &someVal );

相当于

fscanf( stdin, "%d", &someval );

这两个函数都从标准输入 ( stdin) 读取。

于 2013-10-23T14:22:07.440 回答
4

它是您从命令行运行程序时在键盘上键入的内容

它是为程序定义的 3 个标准流之一

当您在命令行上启动程序时,您可以在终端中键入一些文本,该文本将被传递到程序的标准输入流

其他 2 个流是显示在终端上的标准输出,以及显示不应该在标准输出中的错误消息的错误流

在大多数终端上,您可以将流重定向到文件和从文件中重定向,如下所示:

myprog.exe < file_to_read.txt 

其中 file_to_read.txt 将被读取并传递到输入输入流中

于 2013-10-23T11:36:42.783 回答
1

来自维基百科:

Unless redirected, input is expected from the keyboard which started the program.

于 2013-10-23T11:37:29.853 回答