C 我如何阻止文件扫描程序读取最大数后的整数

C 我如何阻止文件扫描程序读取最大数后的整数,c,C,很抱歉,如果它看起来很容易解决。但是我对C语言还很陌生,并且已经尝试了很多,但是我不知道如何阻止扫描仪读取超过最大限制的整数。我有一个包含22个整数的文件,但我希望数组只存储文件中的20个整数。但它仍然读取所有整数。任何小费对我来说都是很有价值的:/非常感谢 int *array = malloc(20* sizeof(int)); while(fscanf(fp,"%d",&array[i])!=EOF) { printf("%d\n",array[i]);

很抱歉,如果它看起来很容易解决。但是我对C语言还很陌生,并且已经尝试了很多,但是我不知道如何阻止扫描仪读取超过最大限制的整数。我有一个包含22个整数的文件,但我希望数组只存储文件中的20个整数。但它仍然读取所有整数。任何小费对我来说都是很有价值的:/非常感谢

int *array = malloc(20* sizeof(int));

while(fscanf(fp,"%d",&array[i])!=EOF)
    {

        printf("%d\n",array[i]); 
if(*array <= 20){
        i++;
    }
}
int*array=malloc(20*sizeof(int));
while(fscanf(fp,“%d”&数组[i])!=EOF)
{
printf(“%d\n”,数组[i]);
if(*数组在if之后:

else {
    break;
}

当数组的第一个索引中的元素小于或等于20时,您拥有的代码将递增i。如果您的第一个数字(来自文件)小于或等于20,则这是可能的

if(*array <= 20){

尝试将break语句与system.out.println语句一起添加

 else 
{
  System.out.println("sorry!you are done");
  break;
  }
希望这能奏效!


只需更改for循环的计数器,就可以完成工作

在循环中使用
break
?您的意思是下面的if语句吗?这是针对c而不是java的
if(i == 20) {
    ...
}
 else 
{
  System.out.println("sorry!you are done");
  break;
  }