使用命令行打开文件
Open file using commandline
我正在做作业,我必须在执行程序时从命令行打开一个文件。
示例:
program.exe file.txt
然而,这对我来说根本不起作用。有人可以告诉我我做错了什么吗?这是我第一次使用文件作为参数。
int main(int argc, char **argv) {
int value;
value = fileRead(argv[1]);
}
int fileRead(char argv[]) {
int value;
FILE *fp;
fp = fopen(argv[1], "r");
if (fp) {
fscanf(fp, "%d", &value);
} else {
fprintf(stderr, "Failed to open file!\n");
}
return value;
}
您混淆了字符和字符串。您将 argv[1]
作为 argv
传递给 fileRead
。然后在 fileRead
中,您再次执行 argv[1]
。这有效地执行了 argv[1][1]
,它只给出了字符串的第二个字符。您需要从 main
中删除 [1]
然后更改参数类型,或者从 fileRead
.
中删除 [1]
我正在做作业,我必须在执行程序时从命令行打开一个文件。
示例:
program.exe file.txt
然而,这对我来说根本不起作用。有人可以告诉我我做错了什么吗?这是我第一次使用文件作为参数。
int main(int argc, char **argv) {
int value;
value = fileRead(argv[1]);
}
int fileRead(char argv[]) {
int value;
FILE *fp;
fp = fopen(argv[1], "r");
if (fp) {
fscanf(fp, "%d", &value);
} else {
fprintf(stderr, "Failed to open file!\n");
}
return value;
}
您混淆了字符和字符串。您将 argv[1]
作为 argv
传递给 fileRead
。然后在 fileRead
中,您再次执行 argv[1]
。这有效地执行了 argv[1][1]
,它只给出了字符串的第二个字符。您需要从 main
中删除 [1]
然后更改参数类型,或者从 fileRead
.
[1]