程序对比找差别问题,急急急!!

june33 2009-06-17 06:58:12
C/C++ code
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
main()
{
FILE *fptr1,*fptr2,*fptr3;
char temp[30],temp1[30],temp1add[30],temp2[30],temp2tel[30];
if ((fptr1=fopen("D:\\addr.txt","r"))==NULL)
{
printf("cannot open file");
exit ( 0 ) ;
}
if ((fptr2=fopen("D:\\tel.txt","r"))==NULL)
{
printf("cannot open file");
exit( 0 ) ;
}
if ((fpt…


我用以下部分程序执行时,为什么会出现这样的结果,请指教!!!
while(getc(fptr1)!=EOF )
{
fgets (temp1,30,fptr1 ) ;
fgets ( temp1add , 16 , fptr1 ) ;
fputs ( temp1 , fptr3 ) ;
fputs ( temp1add , fptr3 ) ;
while(getc(fptr2)!=EOF)
{
fgets ( temp2 ,30, fptr2 ) ;
if(strcmp(temp1,temp2)==0)
{
fgets ( temp2tel ,16 , fptr2) ;
fputs ( temp2tel , fptr3);
fputs("\n",fptr3);

}
}
rewind ( fptr2 ) ;
}
结果为iying
shanghai
2345
iming
chengde
4455

angpin
chongqing
9988

ejie
jianjing
0987

每个名字都少了一个开头的字母!!!!
...全文
9 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
sun90cn 2009-06-18
  • 打赏
  • 举报
回复
好好看看吧。
kingteng 2009-06-17
  • 打赏
  • 举报
回复
getc(fptr1)!=EOF 这样的表达式每次使得文件指针往前移动了
june33 2009-06-17
  • 打赏
  • 举报
回复
请大侠指教!!!
june33 2009-06-17
  • 打赏
  • 举报
回复
while(getc(fptr1)!=EOF )
while(!feof( fptr1) )
这是两个的差别,红色的部分运行出来名字少了一个。
黄色的部分语句运行出来重复操作一次。

69,371

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧