使用命令行打开文件

时间:2017-03-11 02:47:37

标签: c file codelite

我正在完成一项任务,我必须在执行程序时从命令行打开一个文件。

示例:

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;
}

1 个答案:

答案 0 :(得分:1)

你正在混淆一个角色和一个字符串。您将class DiffSquared extends Module { val inputWidth = 8 val width = 16 val io = IO( new Bundle{ val X = Input(UInt(inputWidth.W)) val M = Input(UInt(inputWidth.W)) val Out = Output(UInt(width.W)) }) def zX(w:UInt) = Wire(UInt((w.getWidth+1).W),init=w).asSInt val diff = Wire(init=zX(io.X)-zX(io.M)) io.Out := (diff*diff).asUInt } 传递给argv[1] fileRead。然后在argv中,您再次fileRead。这实际上有效argv[1],它只给出了字符串的第二个字符。您需要从argv[1][1]中删除[1],然后更改参数类型,或从main中删除[1]