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