我正在执行一个函数来计算文件中的单词数,但是一旦到达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
答案 0 :(得分:3)
您没有分配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;
}