Как посчитать количество гласных при чтении из файла, используя указатель указателя? - PullRequest
0 голосов
/ 21 апреля 2020

Привет. Я пытаюсь открыть текстовый файл и прочитать содержимое файла символ за символом, и мне нужно вычислить, сколько гласных в каждой строке. Я пытаюсь использовать 2d массив, используя указатель указателя. это ничего не возвращает. Выдает ошибку, программа перестала отвечать.

#include <stdlib.h>
#include <stdio.h>
#define input "input.txt"
int rows(const char*);

int** vowels(const char*);

int main()
{
    int i,j;
    int r = rows(input);

    int **c=vowels(input);
    for(i=0;i<r;i++)
    {
        for(j=0;j<5;j++)
            printf("%d\t",c[i][j]);
        printf("\n");
    }
    return 0;
}
int** vowels(const char* filename)
{
    int **a;
    int rows=0;
    FILE* fp = fopen(filename, "r");
    if (!fp)
    {
        printf("Error opening file\n");
        exit(1);
    }
    char ch;
    *(*(a+rows)+0)=0;*(*(a+rows)+1)=0;*(*(a+rows)+2)=0;*(*(a+rows)+3)=0;
    while (1)
    {
        ch = getc(fp);
        if (feof(fp))
        {
            break;
        }
        else if (ch == '\n')
        {
            rows++;
            *(*(a+rows)+0)=0;*(*(a+rows)+1)=0;*(*(a+rows)+2)=0;*(*(a+rows)+3)=0;    
        }
        else if (ch == 'a')
        {
            *(*(a+rows)+0)=*(*(a+rows)+0)+1;
        }
        else if (ch == 'e')
        {
            *(*(a+rows)+1)=*(*(a+rows)+1)+1;
        }
    }
    fclose(fp);
    return a;   
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...