我需要以下列方式从命令行访问提供给程序的文件:./myProgram < filename
我认为你可以使用命令行参数(argv和argc)来做到这一点,但现在意识到情况并非如此。我只是想知道这个文件的输入位置(名称或其他),所以我可以访问它。
提前致谢!
答案 0 :(得分:0)
如果您使用的是unix shell(zsh,bash等)并执行./myProgram <filename
之类的操作,则该程序不会在<filename
中收到argv
阵列。相反,shell使用<
解析部件并重定向程序的输入,使其来自文件filename
。
有关i / o重定向的更多信息here
所以,你写的就像是从stdin
读取一样(因为你 从stdin读取):
#include <stdio.h>
int main()
{
char str[200];
int i;
scanf("%s", str);
scanf("%d", &i);
printf("%s %d\n", str, i);
}