#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 Когда я скомпилировать предыдущий код Я получаю следующие ошибки.Аргумент типа «полукокса (*) [16]» несовместим с параметром типа «Const символ *»
- аргумент типа
char (*)[16]
несовместим с параметром типаconst char *
FILE *fopen(const char *,const char *)
: не может преобразовать аргумент 1 изchar (*)[16]
вconst char *
я понял из комментария, что некоторые из моих двух величин, Я пытаюсь назначить один для другого в разных форматах, но я не могу исправить свою ошибку. Может кто-нибудь, пожалуйста, помогите мне?
'Еореп (& название, "г")' -> 'FOPEN (имя, "г")' – BLUEPIXY
или избежать модификации 'ARGV [1]', а вместо этого просто 'FOPEN (ARGV [1] , "r") '. –
Вы можете взять имя файла как argv [1]. «Главная» также может быть определена как «int main (int argc, const char * argv [])» .. – user3078414