0
我已經寫了下面的代碼片段來將n個隨機數寫入文件。寫完後,我從文件中讀取數據並將其存儲在數組中。我面臨的問題是,當我從文件中讀取數據時,我會得到額外的數字。寫入和從文件中讀取
#include<stdio.h>
#include<stdlib.h>
int main(void)
{
int limit,i=0;
int numbers[100];
char line[100];
printf("Enter the number of random number to be generated(max 1000)");
scanf("%d",&limit);
FILE *fpi;
fpi=fopen("input.txt","w");
for(i=0;i<limit;i++)
{
fprintf(fpi,"%d\n",rand());
}
fclose(fpi);
FILE *file;
file = fopen("input.txt", "r");
while(fgets(line, sizeof line, file)!=NULL)
{
numbers[i]=atoi(line);
i++;
}
printf("%d\n\n",i);
int totalNums = i;
for (i=0 ; i<totalNums ; i++)
{
printf("%d\n",numbers[i]);
}
fclose(file);
return 0;
}
如果我給limit = 3,並且我給文件寫了3個數字,例如47,18836,431。 當我從文件中讀取並打印時,我得到6個值,其中前3個是垃圾,接下來的3個是寫入的值。
如果我註釋掉寫作部分,並試圖從文件中讀取,我會得到只有3個數字的正確輸出。所以我認爲我的代碼中存在一些寫入文件部分的問題。 有人可以幫我解決它。