[英]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.