标题:执行完 fputc(ch,rp);这一句,文件指针理应会自动移动下一个字符,按理应该会 ...
取消只看楼主
iyzh635428
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-10-17
结帖率:0
已结贴  问题点数:10 回复次数:1 
执行完 fputc(ch,rp);这一句,文件指针理应会自动移动下一个字符,按理应该会回到当前位置,为何要再执行 fseek(rp,0L,SEEK_CUR);呢
原题:编程序对名为“d:\ccw.txt”的文件中"@"之前所有字符加密,加密方法是每个字节的内容减10.
以下的代码是参考答案提供的,只有一句是不明白的,不知道哪位大师能为我解答一下疑惑?执行完fputc(ch,rp);这一句,文件指针理应会自动移动下一个字符,按理应该会回到当前位置,为何要再执行fseek(rp,0L,SEEK_CUR);呢?而且,经过我的好几遍测试,没有fseek(rp,0L,SEEK_CUR);这一句,程序就会出现死循环.为什么呢?
#include<stdio.h>
#include<stdlib.h>
main()
{
 FILE *rp;
 char ch;
 if((rp=fopen("d:\\ccw.txt","r+"))==NULL)
  {printf("Can't not open file");exit(0);}
 while(!feof(rp))
  {
  if((ch=fgetc(rp))=='@') break;
   else ch-=10;
   fseek(rp,-1L,SEEK_CUR);
   fputc(ch,rp);
   fseek(rp,0L,SEEK_CUR);
  }
 fclose(rp);
}
搜索更多相关主题的帖子: 参考答案 include 而且 加密 
2014-10-17 14:03
iyzh635428
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-10-17
得分:0 
回复 3 楼 beyondyf
Anyway,Thank you!也许我水平太低了,你所说的我都没学过。
2014-10-19 11:46



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-437345-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.592100 second(s), 8 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved