【发布时间】:2021-09-01 12:26:09
【问题描述】:
我是 C 的新手,我想知道我的程序需要什么,以便在将这个命令写入控制台时,它能够从给定的 test.stdin 文件中读取:
cat test.stdin | ./myprogram | tee myoutput.stdout
?
所以我猜 test.stdin 是计算机上的某个文件,它为我的程序提供数据/输入,然后我的程序正在处理该数据并将结果写入文件 myoutput.stdout,该文件也在我的某个地方电脑。
我的程序需要什么才能使上面的命令正常工作?我需要对 stdin 中的数据进行一些计算,但我不知道如何开始,如何读取并让命令适用于我的程序。
【问题讨论】:
-
标准输入是标准输入。不应该做任何特别的事情,只需像往常一样从标准输入中读取。
-
@MikeCAT 我已经读到可以使用 fopen 函数从标准输入读取,这是正确的吗?如果是,我不知道这个函数的参数需要是什么,所以上面的命令才能工作。我认为像 fopen(somestdin, "r");会失败,因为我的程序不知道 somestdin 应该是什么?
-
如果您的系统支持
"/dev/stdin"可能会起作用,但您不需要使用它,只需从标准输入中读取即可。 -
当您使用管道时,来自
stdin的正常读取将从管道中读取。您可以照常使用scanf或fgets等普通函数。
标签: c bash unix command-line