如何通过C中的字符串打开文件

时间:2016-03-13 01:06:33

标签: c parsing c-preprocessor argv argc

所以我试图使用argc和argv创建一个字符串并通过我放入命令行的内容打开一个文件但是我得到了:

A3.c:14:30: error: expected ‘;’, ‘,’ or ‘)’ before string constant
FILE *fopen(const char * "levelFile.txt", const char * "r+");

此后如何解析文件。

#include <stdio.h>
#include <stdlib.h>
#include <ncurses.h>

int main(int argc, char *argv[])
{
  int i;

  for(i = 0; i < argc; i++)
  {
      printf("argv[%d] = %s\n", i, argv[i]);
  }

  printf("%s", argv[1]);
  FILE *fopen(const char * "%s", const char * "r+", argv[1]);
}

2 个答案:

答案 0 :(得分:0)

  

FILE * fopen(const char *“%s”,const char *“r +”,argv [1]); //错了 - 你把原型与函数调用混合在一起。

应该是:

  FILE *pFile = fopen(argv[1], "r+");  // declare a file pointer and initialize it to open the file with desired mode.
  if( NULL == pFile )  // check if file is opened ok.
  {
    fprintf(stderr, "Failed to open file");
  }

答案 1 :(得分:0)

只需更改

FILE *fopen(const char * "%s", const char * "r+", argv[1]); 

FILE *fp = fopen(argv[1], "r+"); 

您正在声明指向FILE的指针,并且需要调用特定的变量名称,例如fp

此外,fopen()是一个函数调用,它只能是一个初始值设定项。 "%s""r+"是参数,不需要前导const char *