我写了C语言代码,先是逐字读取,然后判断是否有 “ 字符,如果有,就输出来,如果没有,就跳行,但是没有效果,还是全部输出,没有刷选的效果。求大神帮忙改写一下,哪里有错误
char *cmd="C:\\Users\\Administrator\\Desktop\\A.txt";//文档位置
FILE * fp;//指针
char buf[1024];
char *channe="“";//定义刷选的内容,(“)这个
fp=fopen("C:\\Users\\Administrator\\Desktop\\A.txt","r");
while(fgets(buf,sizeof(buf),fp)!=NULL) //逐字读取
{
if (strncmp (buf,channe,9) ==1) //对比是否出现刷选内容,这个 ” 符号
printf("%s", buf); //有的话输出
else
fscanf(fp,"%*s\n",buf); //不然跳行
}
1.strncmp 返回0才表示相等。
2.strncmp 你是固定第9个位置嘛?
3.可以使用strstr 或 strch来直接判断一整行是否有这个字符。
您好,我是问答小助手,你的问题已经有小伙伴为您解答了问题,您看下是否解决了您的问题,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632