从一个程序中抄到一个很奇怪的程序哦,是一个数据备份函数里
void backup() /*数据备份的函数*/
{
#define STRSIZ 10
char out_name[STRSIZ];
FILE *fp3,*fp4;
char ch;
if((fp3=fopen("list","rb+"))==NULL)
{
printf("cann't open this file.\n");
getchar();
exit(0);
}
printf("Enter the name for backup:\n");
for(scanf("%s",out_name);
(fp4=fopen(out_name,"w"))==NULL;
scanf("%s",out_name))
{
printf("Cannot use %s for output name\n",out_name);
printf("Re-enter file name>");
exit(0);
}
for(ch=getc(fp3);ch!=EOF;ch=getc(fp3))
putc(ch,fp4);
fclose(fp3);
fclose(fp4);
printf("backup is OK\n");
}
其中
for(scanf("%s",out_name);
(fp4=fopen(out_name,"w"))==NULL;
scanf("%s",out_name))
和
for(ch=getc(fp3);ch!=EOF;ch=getc(fp3))
怎么这么奇怪?for的格式不是
for(初值;循环条件;增量)
但这里怎么看也不像是增量哦!初值和增量一样的?