使用命令行打开文件

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]