2

我希望有一个文件名作为 C 程序的参数。我尝试了所有可能的方法,fopen如下所示。

fp = fopen(*argv[2], "r");

也用过"*argv[2]"但没用。我想知道我哪里出错了,以便我可以正确使用它。谢谢!

4

3 回答 3

4

它应该是

fp = fopen(argv[2], "r");

请注意,argv[0]它将包含您的 exe 名称(带路径),您传递的其他参数将从argv[1].

有关在 C 中使用命令行参数的更多详细信息,请参阅此内容。

在您的主函数中,如果您将char **argv其作为参数,则数组下标argv[1]会自动将其转换char *为 fopen 预期的参数。

于 2012-05-29T12:29:55.583 回答
3
fp = fopen(argv[2], "r" ) 

足够

argv 是一个字符指针数组。索引此数组可为您提供在命令行上传递的字符串。您不需要进一步取消引用*

于 2012-05-29T12:30:01.640 回答
1

fopen将 char* 作为文件名的参数:

文件 *fopen(const char *path, const char *mode);

你只需要像这样使用它:

fp = fopen(argv[2], "r"); // if 2nd argument passed is your filename
于 2012-05-29T12:30:21.527 回答