【发布时间】:2018-07-24 11:55:51
【问题描述】:
我正在将 cat 命令用于学校项目。
我需要提供一个 txt 文件作为我的代码的输入,然后评估输出(保存在 txt 文件中)。 到目前为止,我在命令行中使用它:
cat input_000.txt | ./main > my_output.txt
./main 是我的 C 代码。
input_000.txt 的结构如下:
0 a a R 3
1 a b L 4
4 c b R 1
ecc...
我有一定数量的由 5 个字符组成的行(它们之间有空格)。
如何获取 C 代码中每一行的内容?有人告诉我要使用标准输入,但我一直使用scanfonly 来自键盘输入。
在这种情况下它仍然有效吗?
我应该如何保存我的输出?我通常使用fwrite,但在这种情况下,一切都由cat 命令管理
【问题讨论】:
-
read from pipe line by line in c 的可能重复项。
-
"但我一直使用
scanfonly 来自键盘输入。"在那种情况下,stdin正在从您的键盘读取。但它仍然是stdin。 -
cat应该完全不相关,你的第一个 sn-p 是经典的useless use of cat。 (正确命令:./main <input_000.txt >my_output.txt) -
@FelixPalmen 为什么没用?我正在报告我们教授的命令。输入 txt 进入 C 代码(充当过滤器)并将结果打印到第二个 txt 中。 link 这里有一个类似的例子 'cat file1 file2 file3 |排序 > 文件 4'
-
@MattiaSurricchio 好,请点击我的链接。简而言之,shell 可以将文件提供给
stdin,这就是输入重定向的用途。cat用于连接,如果您只读取一个文件,则大多数情况下它是无用的 - 并且会花费您另一个进程。