C语言用异或运算逐个字符加密

#include<stdio.h>#include<conio.h>#include<stdlib.h>voidmain(){FILE*fp1;charc;longi=0... #include<stdio.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
FILE *fp1;
char c;
long i=0;
if((fp1=fopen("C:\\Users\\Administrator\\Desktop\\t1.txt","rb+"))==NULL)
{
printf("文件不存在");
exit(1);
}
while((c=fgetc(fp1))!=EOF)
{
c=c^10;
fseek(fp1,-1,SEEK_CUR);
fputc(c,fp1);
fseek(fp1,0,SEEK_CUR);
}
fclose(fp1);

}
这里,如果没了fseek(fp1,0,SEEK_CUR)这一句,就会一直死循环,可是这句不是废的吗?
展开
 我来答
庄政警
推荐于2016-10-19 · TA获得超过9916个赞
知道大有可为答主
回答量:1113
采纳率:94%
帮助的人:884万
展开全部
文件以可读可写模式打开,当从读操作切换到写操作,或者从写切换到到读操作时必须先刷新一次文件缓冲区(就是把当前对文件的改变写入磁盘),否则就不能正常操作。而fseek在移动文件指针的同时刷新了缓冲区。fseek(fp1,0,SEEK_CUR)这句的目的不是移动文件指针,而是为了刷新缓冲区。 不然fputc以后就不能fgetc了。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式