簡體   English   中英

如何停止文件掃描器讀取最大數目后的整數

[英]how can I stop the file scanner from reading the ints after the max number

很抱歉,解決起來似乎很簡單。 但是我真的是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++;
    }
}

當數組的第一個索引中的元素小於或等於20時,您擁有的代碼將使i遞增。如果您的第一個數字(來自文件)小於或等於20,則有可能執行。

if(*array <= 20){

您應該執行以下操作

while(i < 20) {
    if(fscanf(fp, "%d", &array[i]) != EOF) {
        printf("%d\n",array[i]); 
        i++;
    } else {
        break;
    }
}

也許以后再添加一些驗證,以確保您閱讀了20個數字

if(i == 20) {
    ...
}

在您之后:

else {
    break;
}

看這個例子,只需要改變for循環的計數器,就可以完成工作

嘗試將break語句與system.out.println語句一起添加。

 else 
{
  System.out.println("sorry!you are done");
  break;
  }

希望這有效!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM