C语言问题,急求!!!

有以下程序段:for(j=0;j<len;j++){for(i=0;i<strlen(array[j].arr);i++){if(array[j].arr[i]==0xF... 有以下程序段:
for (j = 0; j < len; j++)
{
for (i = 0; i < strlen(array[j].arr); i++)
{
if(array[j].arr[i] == 0xFF && array[j].arr[i+1] == 0x01)
{
fputc(array[j].arr[i], fpr);
fputc(array[j].arr[i+1], fpr);
fwrite(&sum, sizeof(int), 1, fpr);
sum++;
i = i+1;
}

else
{
fputc(array[j].arr[i], fpr);
}

}
}
为什么不执行fwrite(&sum, sizeof(int), 1, fpr);这句???
改成:
for (j = 0; j < len; j++)
{
for (i = 0; i < strlen(array[j].arr); i++)
{
if(array[j].arr[i] != 0xFF && array[j].arr[i+1] != 0x01)
{
fputc(array[j].arr[i], fpr);

}

else
{ fputc(array[j].arr[i], fpr);
fputc(array[j].arr[i+1], fpr);
fwrite(&sum, sizeof(int), 1, fpr);
sum++;
i = i+1;
}

}
}
就会执行

if((unsigned char)array[j].arr[i] == 0xFF && array[j].arr[i+1] == 0x01)
解决问题!!
展开
 我来答
黄孔云
2011-08-20 · TA获得超过549个赞
知道答主
回答量:117
采纳率:0%
帮助的人:71.4万
展开全部
如果你的条件正确那么一定会执行这个语句,但执行成功与否,就要看两个地方,第一个就是你的时候正确打开文件句柄fpr,打开方式用fpr=fopen("filePath","w+");因为你这里是“写”操作,在判断文件是否打开,if(fpr==NULL)如果等于NULL表示没有打开,可以exit(1)退出程序了,如果打开了,执行语句fwrite(&sum, sizeof(int), 1, fpr);后在判断是否写入成功,if(fwrite(&sum, sizeof(int), 1, fpr)!=1)也可以用exit(1)退出程序了,应为因为fwirte正确的返回值是你写入的个数,这里写入的个数是1,所以用1来判断
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友bd4cf2a31
2011-08-20 · TA获得超过332个赞
知道小有建树答主
回答量:333
采纳率:100%
帮助的人:339万
展开全部
你可以用:
printf(“count=%d\n”,fwrite(&sum, sizeof(int), 1, fpr));
这条语句代替fwrite(&sum, sizeof(int), 1, fpr); 这条语句试下,
如果count不等于0,表示数据写入成功,等于0表示写入出错了!
你说的不执行,还有可能是你文件的打开方式不对,要用写的方式打开文件,不能用读的方式打开文件。
更多追问追答
追问
试了一下,没有任何数据输出,好像没执行printf(“count=%d\n”,fwrite(&sum, sizeof(int), 1, fpr));
语句一样?打开方式是写的方式
追答
我倒!.....
你说的没执行是:
if(array[j].arr[i] != 0xFF && array[j].arr[i+1] != 0x01) 这条语句的判断条件一直都为假,
程序就一直在执行else 的内容,
{
fputc(array[j].arr[i], fpr);
fputc(array[j].arr[i+1], fpr);
fwrite(&sum, sizeof(int), 1, fpr);
sum++;
i = i+1;
}
以上这一整段都不会执行啊....你要保证你的if语句中判断条件是正确的。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式