Итак, мне нужно написать программу, которая предлагает пользователю ввести имя файла, используя указатель на массив, созданный в main, и затем открыть его.В отдельной функции я должен передать пользовательскую строку в файл, открытый в main, и вернуть количество строк в файле, основываясь на том, сколько строк он читает в цикле и возвращает это значение вызывающей стороне.
Так что для моей первой функции это то, что у меня есть.
void getFileName(char* array1[MAX_WIDTH])
{
FILE* data;
char userIn[MAX_WIDTH];
printf("Enter filename: ");
fgets(userIn, MAX_WIDTH, stdin);
userIn[strlen(userIn) - 1] = 0;
data = fopen(userIn, "r");
fclose(data);
return;
}
Для моей второй функции у меня есть это.
int getLineCount(FILE* data, int max)
{
int i = 0;
char *array1[MAX_WIDTH];
if(data != NULL)
{
while(fgets(*array1, MAX_WIDTH, data) != NULL)
{
i+=1;
}
}
printf("%d", i);
return i;
}
И в моей основной у меня есть это.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define MAX_WIDTH 144
void getFileName(char* array1[MAX_WIDTH]);
int getLineCount(FILE* data, int max);
int main(void)
{
char *array1[MAX_WIDTH];
FILE* data = fopen(*array1, "r");
int max;
getFileName(array1);
getLineCount(data, max);
return 0;
}
Мой текстовый файл такой.
larry snedden 123 mocking bird lane
sponge bob 321 bikini bottom beach
mary fleece 978 pasture road
hairy whodunit 456 get out of here now lane
Моя проблема в том, что каждый раз, когда я запускаю это, я получаю 0 в ответ, и я не думаю, что это то, что я должен получитьназад.Кроме того, во второй функции я понятия не имею, зачем мне нужен int max, но мой учитель отправил мне это, так что если кто-то может это объяснить, это было бы здорово.Я действительно не знаю, что я делаю неправильно.Я буду признателен за любую помощь, которую я могу получить.