【问题标题】:What means "standard input" in C language?C语言中的“标准输入”是什么意思?
【发布时间】:2013-10-23 11:26:54
【问题描述】:

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

但我有一点疑问:standard input 到底是什么?

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

两个?

谢谢。

【问题讨论】:

标签: c


【解决方案1】:

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

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

例如,

scanf( "%d", &someVal );

等价于

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

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

【讨论】:

    【解决方案2】:

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

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

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

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

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

    myprog.exe < file_to_read.txt 
    

    file_to_read.txt 将被读取并传递到输入输入流的位置

    【讨论】:

    • 我想注意的是,如果您直接在终端上启动应用程序并且不给它任何标准输入,那么它只是您在终端上键入的内容。 stdin 通常也用于数据传输,当一个应用程序启动另一个应用程序并需要为其提供数据时。例如,CGI 规范涉及通过标准输入发送可识别 CGI 的应用程序数据并通过标准输出返回,但两者都没有到达终端——它是一个网站!
    【解决方案3】:

    From Wikipedia:

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

    【讨论】:

      猜你喜欢
      • 2013-05-02
      • 1970-01-01
      • 1970-01-01
      • 2011-01-14
      • 2020-10-30
      • 2020-08-07
      • 2016-12-03
      • 2011-09-02
      • 1970-01-01
      相关资源
      最近更新 更多