我希望有一个文件名作为 C 程序的参数。我尝试了所有可能的方法,fopen
如下所示。
fp = fopen(*argv[2], "r");
也用过"*argv[2]"
但没用。我想知道我哪里出错了,以便我可以正确使用它。谢谢!
它应该是
fp = fopen(argv[2], "r");
请注意,argv[0]
它将包含您的 exe 名称(带路径),您传递的其他参数将从argv[1]
.
有关在 C 中使用命令行参数的更多详细信息,请参阅此内容。
在您的主函数中,如果您将char **argv
其作为参数,则数组下标argv[1]
会自动将其转换char *
为 fopen 预期的参数。
fp = fopen(argv[2], "r" )
足够
argv 是一个字符指针数组。索引此数组可为您提供在命令行上传递的字符串。您不需要进一步取消引用*
fopen将 char* 作为文件名的参数:
文件 *fopen(const char *path, const char *mode);
你只需要像这样使用它:
fp = fopen(argv[2], "r"); // if 2nd argument passed is your filename