我从 stdin
读取值,我想继续读取文件,直到我完全读取它,所以我正在使用
while(!EOF){ scanf(...) }
然而,代码片段似乎并没有做任何事情,
while(!EOF){
scanf("%d %d %d %d", &imageWidth, &imageHeight, &safeRegionStart, &safeRegionWidth);
printf("---imageWidth=%d imageHeight=%d safeRegionStart=%d safeRegionWidth=%d---\n", imageWidth, imageHeight, safeRegionStart, safeRegionWidth);
totalP = imageWidth * imageHeight ;
totalSafeP = imageHeight * safeRegionWidth;
printf("---total # of pixels: %d Total # of safe Pixels: %d---\n\n", totalP, totalSafeP);
i=1;
while(i!=totalP)
{
i++;
scanf("%d", &pixel);
printf("\nValue of pixel %d", pixel);
}//End for scanning all pixels*/
}//while loop
编辑:我修好了
while(scanf("%d %d %d %d", &imageWidth, &imageHeight, &safeRegionStart, &safeRegionWidth)==4&&!feof(stdin)) { }
!feof(stdin)
可能不是必需的。
最佳答案
EOF
只是一个整数常量。在大多数系统上,它是 -1
。 !-1
为 false
并且 while(false)
不会执行任何操作。
您想要的是检查scanf
的返回值。 scanf
返回成功读取的项目数,最终返回 EOF
。
关于c - 关于 while(!EOF) 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6275558/