我已经连续几个小时都在研究这个问题了,我已经搜索过了,我的代码仍然无法正常工作。
如何使用argv[]
作为我想要读取的文件从main中的函数读取我的文件?
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
FILE words(FILE *filesToRead)
{
const char *Open;
Open = (char *)filesToRead;
filesToRead = fopen(Open, "rt");
int line;
while ((line = fgetc(filesToRead)) != EOF)
{
printf("%c", line);
}
fclose(filesToRead);
}
int main(int argc, char *argv[])
{
char *ah = argv[];
words(ah);
return 0;
}
答案 0 :(得分:4)
试试这个:
void words(char *filename)
{
FILE *filesToRead = fopen(filename, "rt");
/* ... */
}
int main(int argc, char *argv[])
{
if (argc > 1)
words(argv[1]);
return 0;
}
老实说(请不要被冒犯)你的代码看起来似乎已经跳过了你正在使用的C书中的几章。
答案 1 :(得分:0)
argv[]
是一个char *
的数组。例如,如果从命令行调用程序为:
my_prog.exe foo bar
然后:
argc
将为3; argv[0]
将指向“my_prog.exe”argv[1]
将指向“foo”argv[2]
将指向“bar”因此,在main()
函数中,如果您期望一个参数,则需要检查argc
的值是否为2,然后从argv[1]
中读出您的参数。