问题描述
- 这个小程序的while循环是怎么完成任务的?
-
#include
#include
#define M 100int main(int argc, char *argv[])
{
FILE *fp1,*fp2;
char str1[M], str2[M];
int E1,E2;
if( ( fp1=fopen(argv[1],"r") ) == NULL)
{
printf("Can't open %s",argv[1]);
exit(1);
}
if( ( fp2=fopen(argv[2],"r") ) == NULL)
{
printf("Can't open %s",argv[2]);
exit(1);
}
while( 1 )//我不懂???
{
if( (E1=fscanf(fp1,"%s",str1)) == 1 ) puts(str1);
if( (E2=fscanf(fp2,"%s",str2)) == 1 ) puts(str2);
if( E1 != 1&& E2 != 1) break;
}
fclose(fp1);
fclose(fp2);return 0;
}
while循环作用是让程序打印第一个文件的第一行、第二个文件的第一行、第一个文件的第二行、第二个文件的第二行,依此类推,直到打印完行数较多的文件的最后一行。怎么起作用??
解决方案
Java中while循环用法
shell脚本编程中for while until三种循环的使用方法
第9周 项目1-3 运用do-while语句做循环程序求和
解决方案二:
while(1)是死循环,一直执行,1相当于true;知道遇到break才能跳出循环
解决方案三:
判断fscanf的返回值,若不为1则代表读完,执行break,跳出while循环
时间: 2024-10-30 17:06:48