int main(int argc,char ** argv)with< stdin> stdout in c

时间:2016-02-13 14:17:08

标签: c stdin argv

如果我想使用这样的命令使用一个exe文件:

1.exe < input.txt > output.txt

要将文件名输入用于修改输入文件和输出文件的C程序,它会起作用吗?

我试过1.exe input.txt output.txt它有效。

但是,当我将其更改为1.exe < input.txt > output.txt时,无法打开文件。

甚至,我将指针argv[1]增加到argv[2],将argv[2]增加到argv[4]

那么,我应该怎样处理1.exe < input.txt > output.txt命令?

1 个答案:

答案 0 :(得分:6)

执行此操作时:1.exe input.txt output.txt,它将input.txt作为第一个参数传递给1.exe,将output.txt传递给第二个参数。

这与1.exe < input.txt > output.txt不同,后者将input.txt的内容放在stdin上,并将stdout写入output.txt。

程序1.exe期望获得它随后打开和操作的文件的名称。它不期望从stdin读取并写入stdout。如果这就是你想要做的,你需要修改程序才能做到这一点。