Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带<;的int main(int argc,字符**argv);stdin>;c中的stdout_C_Stdin_Argv - Fatal编程技术网

带<;的int main(int argc,字符**argv);stdin>;c中的stdout

带<;的int main(int argc,字符**argv);stdin>;c中的stdout,c,stdin,argv,C,Stdin,Argv,如果我想将一个exe文件与以下命令一起使用: 1.exe < input.txt > output.txt 1.exeoutput.txt 要将文件名输入到用于修改输入文件和输出文件的C程序中,它会工作吗 我试过使用1.exe input.txt output.txt它可以工作 但是,当我将其更改为1.exeoutput.txt时,它无法打开该文件 甚至,我将指针,argv[1]增加到argv[2]和argv[2]增加到argv[4] 那么,我应该如何使用1.exeoutput.

如果我想将一个exe文件与以下命令一起使用:

1.exe < input.txt > output.txt
1.exeoutput.txt
要将文件名输入到用于修改输入文件和输出文件的C程序中,它会工作吗

我试过使用
1.exe input.txt output.txt
它可以工作

但是,当我将其更改为
1.exeoutput.txt
时,它无法打开该文件

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


那么,我应该如何使用
1.exeoutput.txt
命令呢

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

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


程序1.exe希望获得文件名,然后打开并对其进行操作。它不希望从stdin读取数据并写入stdout。如果这是您想要做的,您需要修改程序使其能够做到这一点。

我不使用
.exe
文件。你的意思是什么?我不明白我试过使用1.exe input.txt output.txt,它可以工作-为什么不停下来?这不是一个真正的[c]问题。您提供的两个命令对shell具有不同的含义。虽然您可以编写在这两种情况下表现出相同行为的程序,但没有理由期望免费获得这些。既不使用C语言也不使用任何其他语言。由
output.txt
指定的重定向在程序启动之前由shell处理。您的程序在
argv
中看不到这些文件名,但它可以通过
stdin
stdout
访问打开的文件。有关重定向的详细信息,请阅读shell的文档。也许您想要
1.exe“output.txt”