1
我需要訪問命令行以下列方式提供給程序的文件:./myProgram < filename
配管的命令行文件用C
我想你可以用命令行參數(ARGV和ARGC做到這一點),但現在認識到情況並非如此。我只是想知道這個文件輸入到哪裏(名字或其他),所以我可以訪問它。
在此先感謝!
我需要訪問命令行以下列方式提供給程序的文件:./myProgram < filename
配管的命令行文件用C
我想你可以用命令行參數(ARGV和ARGC做到這一點),但現在認識到情況並非如此。我只是想知道這個文件輸入到哪裏(名字或其他),所以我可以訪問它。
在此先感謝!
如果你使用的是unix shell(zsh,bash等)並執行類似./myProgram <filename
的操作,程序將不會收到argv
中的<filename
數組。相反,shell會用<
解析該部分,並重定向該程序的輸入,以使其來自文件filename
。
更多關於I/O重定向here
所以,你寫的完全一樣,如果你在讀從stdin
(因爲你是從標準輸入讀取):
#include <stdio.h>
int main()
{
char str[200];
int i;
scanf("%s", str);
scanf("%d", &i);
printf("%s %d\n", str, i);
}
文件應該能夠從標準輸入中讀取,除非您使用特殊的外殼。 – MikeCAT
那麼'FILE * input = stdin'的一些東西呢? – PresumablyZach
只需編寫程序即可從'stdin'中讀取。您無需關心stdin輸入是否來自某人打字或從文件重定向。也就是說,你可以使用任何能夠從標準輸入讀取的函數。例如'scanf'或'fgets(..,..,stdin)'等。 – kaylum