c 编程 文字统计系统 ,错误不解error C2676: binary '!=' : 'struct _iobuf' does not define...

//文字统计系统#include<stdio.h>#include<conio.h>#include<stdlib.h>intlineread(char*p,FILE*f... //文字统计系统

#include<stdio.h>
#include<conio.h>
#include<stdlib.h>

int lineread(char *p,FILE *fp)
{
for(;*fp!='\n' && *fp!=EOF;p++)
{
*p=*fp;
}
if(*fp==EOF)
return 0;
else
return 1;
}

int linefind(char *p,char *word)
{
char *word0=word;
int words=0;
while(*p!='\0')
{
if((*(p-1)>64&&*(p-1)<91)||(*(p-1)>96&&*(p-1)<123))
continue;
else if(*p!=*word0)
continue;
else
{
for(;*p==*word;p++,word0++)
{}
}
if(*word=='\0')
words++;
word0=word;
}
return words;
}

void main()
{
FILE *fp;
int line=0;
char a[500],word[20];
printf("please INPUT the word you want to find");
gets(word);
if((fp=fopen("c:\\001.txt","r"))==NULL)
{
printf("OPEN FILE ERROE");
getch();
exit(0);
}
while(lineread(a,fp))
{
line++;
printf("line %d totally %d words was found",line,linefind(a,word));
}
}
展开
 我来答
汪好帅
2011-12-27 · TA获得超过2830个赞
知道大有可为答主
回答量:1177
采纳率:0%
帮助的人:1413万
展开全部
只针对于问题出错,具体算法是否正确不给予考虑

把lineread函数修改如下

int lineread(char *p,FILE *fp)
{
char ch;
for(; (ch = fgetc(fp)) !='\n' && feof(fp)!=EOF;p++)
{
*p=ch;
}
if(feof(fp)==EOF)
return 0;
else
return 1;
}

调试运行成功
百度网友1fc36d4
2011-12-27 · TA获得超过3128个赞
知道大有可为答主
回答量:1497
采纳率:100%
帮助的人:1822万
展开全部
fp是文件指针,取数据不是直接对指针解引用的,需要使用fread,fscanf,fgetc,fgets这类文件读取函数。

使用fgets最直接

int lineread(char *p,FILE *fp)
{
return fgets(p,500,fp)!=NULL;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
笃侠6A
2011-12-27 · TA获得超过3734个赞
知道大有可为答主
回答量:3205
采纳率:75%
帮助的人:3255万
展开全部
for(;*fp!='\n' && *fp!=EOF;p++)
中的fp为文件指针(FILE *),不能对其进行*fp!='\n' 运算。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式