Процесс вернулся -1073741819 fscanf - PullRequest
0 голосов
/ 23 апреля 2019

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

Я создаю программу для построениядвоичное дерево, и я сначала подумал, что оно падает из-за какой-то ошибки указателя или чего-то еще, но я закомментировал оставшуюся часть кода, и она все еще выдает ошибку;

include stdio.h
include stdlib.h
include string.h
FILE *file;
typedef struct Node{

struct Node* left;
struct Node* right;
struct Node* parent;
char *word;

}Node;

typedef struct{

Node* root;
int maxlen;

}tree;


int getCount()
{
    int count=0;
    file=fopen("hi.txt","r");
    while(!feof(file))
    {

        count++;
        fscanf(file,"%s\n");

    }
    fclose(file);
    return count;
}

int main()
{
    int count=getCount();
    printf("count=%d",count);

    /*tree t;

    buildbase(&t,getMaxmin(count),count);*/



return 0;
}

код работал вчера, и я не сделал 'Ничего не изменилось в этой функции, и она выдала 98915

1 Ответ

3 голосов
/ 23 апреля 2019

Нет переменной, которой вы присваиваете строку, прочитанную fscanf, она должна быть больше похожа на:

int getCount()
{
    int count=0;
    char buffer[1024] = { 0 };
    file=fopen("hi.txt","r");
    while(!feof(file))
    {

        count++;
        fscanf(file,"%s\n", buffer);

    }
    fclose(file);
    return count;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...