想实现horspool算法,需要读入一个文本文件后查询它的字符数。读入正确(用printf能显示出来),但是用strlen函数测文本长度显示只有2,(真实长度应该有百十万个字符)导致算法不能实现。。
不知道为啥啊,正确读入了,也能显示出来,但是长度只有2,求大神解答!感激不尽!
char text[]="";
int test=0;
FILE *fp=fopen("/Users/liuchong/Desktop/t.txt","r");
if(!fp)
{
printf("can't open file\n");
return -1;
}
while(!feof(fp))
{
fscanf(fp,"%c",&text);
test++;
printf("%s",text);
}
printf("\n");
fclose(fp);
printf("%d\n",test);
int len=strlen(text);
printf("%d\n",len);
输出的两个数字是
169377
2
169377应该是字符数。。。
你的数组名text是一个指向数组第一个元素的指针,
fscanf(fp,"%c",&text)
这一句实际上是取得是text这个指针的地址,而不是数组中的第test个元素,改为&text[test]
或者text+test
。