我如何通过C中的字符串打开文件
How do i open a file through a string in C
所以我尝试使用 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]);
}
FILE *fopen(const char * "%s", const char * "r+", argv[1]); // Wrong - you mixed up prototype with function call.
应该是:
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");
}
简单改变
FILE *fopen(const char * "%s", const char * "r+", argv[1]);
到
FILE *fp = fopen(argv[1], "r+");
您正在声明一个指向 FILE 的指针,并且需要一个特定的变量名称,例如 fp
。
另外,fopen()
是一个函数调用,只能是初始化器。 "%s"
和 "r+"
是参数,不需要前导 const char *
.
所以我尝试使用 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]);
}
FILE *fopen(const char * "%s", const char * "r+", argv[1]); // Wrong - you mixed up prototype with function call.
应该是:
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");
}
简单改变
FILE *fopen(const char * "%s", const char * "r+", argv[1]);
到
FILE *fp = fopen(argv[1], "r+");
您正在声明一个指向 FILE 的指针,并且需要一个特定的变量名称,例如 fp
。
另外,fopen()
是一个函数调用,只能是初始化器。 "%s"
和 "r+"
是参数,不需要前导 const char *
.