经典代码
1 for (A;B;C) D; 2 //等价于 3 { 4 A; 5 while (1) { 6 if (!(B)) break; 7 D; 8 C; 9 } 10 }
for(;i;i--)这是什么? 1、这样的写法,一般i在for之前有正确的初始值; 2、i--表示每次循环之后,i的值减一; 3、i表示如果i的值为0则结束该for循环。
1 #include <stdio.h> 2 #include <string.h> 3 #include <conio.h> 4 FILE *fi,*fo; 5 int i; 6 int main(int argc,char **argv) { 7 if (argc<3) { 8 printf("Usage:%s src des\n",argv[0]); 9 return 1; 10 } 11 if (0==stricmp(argv[1],argv[2])) { 12 printf("Src and des is same!\n"); 13 return 2; 14 } 15 fo=fopen(argv[2],"wb"); 16 if (NULL==fo) { 17 printf("Can not create file %s\n",argv[2]); 18 return 3; 19 } 20 fi=fopen(argv[1],"rb"); 21 if (NULL==fi) { 22 fclose(fo); 23 printf("Can not find file %s\n",argv[1]); 24 return 4; 25 } 26 i=0; 27 fseek(fi,-1L,SEEK_END); 28 while (1) { 29 fputc(fgetc(fi)^0x5A,fo); 30 i++; 31 if (i%1000000==0) cprintf("\r%dKB",i/1000); 32 if (fseek(fi,-2,SEEK_CUR)) break; 33 } 34 fclose(fi); 35 fclose(fo); 36 cprintf("\r%dKB OK.\r\n",i/1000); 37 return 0; 38 }