Как вывести число из одного метода в другой
Нужно взять из одного метода подсчета числа и запросить его в других методах. Как это лучше сделать или починить это решение
Есть size_t который возвращает число counter(число строк из файла).
size_t returnCounter(){
FILE *file = fopen(FNAME, "r");
if (file == NULL)
{
perror("Ошибка при открытии исходного файла");
return EXIT_FAILURE;
}
size_t counter = 0;
int ch, pre = EOF;
while ((ch = fgetc(file)) != EOF)
{
pre = ch;
if (ch == '\n')
++counter;
}
if (pre == EOF)
{
}
else if (pre != '\n')
{
++counter;
}
return counter;
}
И есть метод в котором двумерный массив зависит от counter
char processing()
{
char *tableInfo[returnCounter()][3];
int i = 0, j = 0;
char neObrabotInfo[256];
char sep[10] = ":";
char *istr;
FILE *file = fopen(FNAME, "r");
file = fopen("BookContact.txt", "r");
if (file == NULL)
{
perror("Ошибка при открытии исходного файла");
return EXIT_FAILURE;
}
for (i = 0; fgets(neObrabotInfo, 256, file); i++)
{
istr = strtok(neObrabotInfo, sep);
for (j = 0; istr != NULL; j++)
{
tableInfo[i][j] = malloc(strlen(istr) + 1);
strcpy(tableInfo[i][j], istr);
istr = strtok(NULL, sep);
}
}
fclose(file);
return tableInfo[i][j];
}
И из processing идет в ViewBook где и выходит на консоль
int ViewBook(){
printf(" " "Book Contact" "\n");
printf(" " "Name" " " "|" " " "Cabinet"" " "|" " " "Phone number\n");
printf("-----------" "+" "-------------" "+" "---------------------\n");
for (size_t i = 0; i < returnCounter(); i++){
for (int j = 0; j < 3; j++)
{
printf(processing(i,j));
}
}
}
Ответы (1 шт):
Автор решения: bog
→ Ссылка
Как правильно написал AlexGlebe, функция processing должна возвращать строку, а вы объявили её как возвращающую букву char processing => char * processing.
