#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <conio.h>
#include <iostream>
#include <string>
#include "stdafx.h"
#define MAXNAME 16
void main(int argc, char *argv[])
{
int c, i, j, f;
char lib[MAXNAME] = "lib\0 ";
FILE *in, *out;
char name[MAXNAME];
/* open input file */
i = 0;
while ((name[i] = *argv[1]) != '\0') {
i++;
argv[1]++;
}
if ((in = fopen(&name, "r")) == NULL) {
printf("Can't open file\n");
goto end;
}
/* open output file. Same name as input but with .lib extension */
while (name[i] != '.') i--;
j = 0;
i++;
while (MAXNAME >= (i + j)) {
name[i + j] = lib[j];
j++;
}
if ((out = fopen(&name, "w")) == NULL) {
printf("Can't open file\n");
goto end;
}
我正在尝试在C中打开一个文件。我正在使用Visual Studio 2015.当我编译前面的代码时,我收到以下错误。
char (*)[16]
的参数与参数of不兼容
输入const char *
FILE *fopen(const char *,const char *)
:
无法将参数1从char (*)[16]
转换为const char *
我从评论中了解到,我试图分配给另一个的两个数量中的一些是不同的格式,但是,我无法修复我的错误。有人可以帮助我吗?
答案 0 :(得分:0)
您正在尝试将指针传递给char name [16],但fopen需要“const char *”。
您的解决方案应该直接在fopen中使用argv [1]。
fopen(argv[1], "r");