----------------解决方案--------------------------------------------------------
还有人吗?
----------------解决方案--------------------------------------------------------
#include <stdio.h> void main(void) { FILE *fpr,*fpw; char c;
system("cls"); fpr=fopen("2.txt","r"); fpw=fopen("3.txt","w");
while((c=fgetc(fpr))!=EOF) { c=c==0?255:c-1; //c=c==255?0:c+1; fputc(c,fpw); } getch(); fcloseall(); return; }
----------------解决方案--------------------------------------------------------
c=fgetc(fpr))!=EOF不好吧,
----------------解决方案--------------------------------------------------------
你这个程序我没试,我试试先
----------------解决方案--------------------------------------------------------
你可能犯了一个错误啊!!rb和wb都是以二进制形式读取的!!而fgetc是安文本方式啊!!应该会有无法预料的出现的。至于读写你应该使用fread和fwrite来做才正确的。不信你改改看能不能成功!!使用函数的时候要注意他们的规范!!还有最后机的使用fclose()啊!!!
就是前提条件要不然会发生无法预料的事,不信可看看这个问题:http://bbs.bc-cn.net/bbs/dispbbs.asp?boardID=44&ID=6490&page=1我在最后的总结!!
----------------解决方案--------------------------------------------------------
不------要------慌-------
我慢慢试。
----------------解决方案--------------------------------------------------------
==我先说一下,我晓得rb和r的区别,我都一一换了来试的,问题可能不在这里,我先试试其他的==
----------------解决方案--------------------------------------------------------
amoeba的程序和我的有一个很大的差别啊,我是用16进制,他是直接用的0-255的数字啊,这里看似没什么本质区别的啊。
----------------解决方案--------------------------------------------------------
amoeba,你的这个程序是ok的,但把你那个程序的core套在我的程序上用,问题就来了,你的是判断c是0还是255,然后进行操作对吧,我的当然本质上差不多,我是判断c是0到255着256种情况的哪个,再加以转换,这里是没错的,但到了逆程序(比如在这里c为55时我就把它换成48,逆程序里有48就换成55,没错吧)问题就来了,出现了00000000到11111111之外的情况!
FILE *fpr,*fpw; char c;
system("cls"); fpr=fopen("d:\\junks\\test1.txt","r"); fpw=fopen("d:\\junks\\test2.txt","w"); printf("start"); for(;;) { c=fgetc(fpr); if(!feof(fpr)) { switch(c) { case 0:{c=0;fputc(c,fpw);break;} ........
}
我日
----------------解决方案--------------------------------------------------------