C - Открытие файла в функции с помощью fopen

Я использую Visual Studio 2005 (C\C ++).

Я передаю строку в функцию как массив символов. Я хочу открыться, файл передал в в качестве параметра, и используйте его. Я знаю свои работы кода до степени, потому что, если я hardcode имя файла как первый параметр она работает отлично.

Я действительно замечаю, смотрю ли я на значение как на часы, значение включает адрес в стороне строковый литерал. Я попытался передать в имени файла как указатель, но оно затем жалуется на преобразование типов с __ w64. Как я сказал, прежде чем это будет хорошо работать с "filename.txt" вместо имени файла. Я озадачен.

void read(char fileName[50],int destArray[MAX_R][MAX_C],int demSize[2])
{
    int rows=0;
    int cols=0;
    int row=0;
    int col=0;
    FILE * f = fopen(fileName,"r");
...

Код функции вызова:

char in_filename[50];
int dem[MAX_R][MAX_C]; 
int dem_size[2];
get_user_input( in_filename);
read(in_filename, dem, dem_size );

В часах я добавил для имени файла, правильный текст появляется, таким образом, данные становятся переданными в.

5
задан Joshua Enfield 3 May 2010 в 01:11
поделиться

1 ответ

Если вы используете fopen () , то вы кодируете на C, а не на C ++. Кроме того, это не то, как вы передаете массивы функциям. Синтаксис для списка параметров:

void f(char arr[], unsigned int arr_size);

В случае многомерных массивов вы должны явно указать размер самого правого измерения:

void f(char arr[][20], unsigned int arr_size);

Тем не менее, попробуйте изменить параметр с char fileName [50] в char * fileName .

5
ответ дан 14 December 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: