字符串比较问题,在线等待
功能:比较两文件file1.txt和file2.txt,将同时存在两文件中,且长度小于50个字符的数据行输出到cmpfile.out,并将存在file1.txt但不在file2.txt的数据行输出到cmpfile.chkfpread1为file1.txt的文件指针
fpread2为file2.txt的文件指针
fpwrite1为cmpfile.out的文件指针
fpwrite2为cmpfile.chk的文件指针
string1[512]为从file1.txt读取的数据行
string2[512]为从file2.txt读取的数据行
检查部分代码:[注:遵守MISRA规则]
int tmp=0;
...
while (1)
{
if (fgets(string1, 512, fpread1) == NULL)//检查file1是否结束
{
break;
}
else
{
while (1)
{
if (fgets(string2, 512, fpread2) == NULL)//检查file2是否结束
{
tmp = 1;
break;
}
else
{
if (strcmp(string1, string2) == 0)//相等且小于50的,输出
{
if (strlen(string1)<50)
{
fputs(string1, fpwrite1);
}
break;
}
}
}
fseek(fpread2, 0L, 0);//重新设置file2的文件指针
if (tmp)//存在file1但不在file2的,输出
{
fputs(string1, fpwrite2);
tmp = 0;
}
}
}
大体意思就这样,其他出错处理没加上,我老大说我的程序结果是错误的,但我找了半天也找不出来,麻烦高手指点一下,在线等结果
[[it] 本帖最后由 zxg_1023 于 2008-3-19 21:33 编辑 [/it]]