1. 程式人生 > >如何將.txt檔案讀入到陣列

如何將.txt檔案讀入到陣列

博主在做一道演算法題,驗證哥德巴赫猜想,這道題百度一下全是答案,各種程式碼任你選擇。但是博主的書上有個要求,要求從input.txt輸入,從output.txt輸出。

格式是
intput.txt中的示例數字為:
4
6
8
10

那麼問題來了,如何讀取這段數字,博主的思路是把這個讀入到數組裡,然後一個一個調出來驗證猜想就好了,輸出到檔案也方便。但是,就是這樣一個輸出到陣列,折騰了博主好久(博主很菜,勿噴。)

當用fgets()函式時,它每次只讀取一個位元組,就是說,a[0]=4,a[1]=6,a[2]=8,a[3]=1,a[4]=0所以兩位數就不要考慮這個了,而且

這個函式的引數是char*,如何將char*轉為int型別也是個問題,不然沒法比較。

雖然fgets()是按行讀取,但是這個直接是字串陣列,都沒有a[某某]。

不羅嗦了,直接貼程式碼。

#include <stdio.h>
#include <stdlib.h>

int main(){
    FILE *fp;
    fp=fopen("input.txt","r");
    if(fp==NULL)
        puts("file open error");
    const int max=10;
    int i,j=0;
    int line[max];
    while
(!feof(fp))//判斷當前的讀寫位置是否已經達到檔案結束位置ps:說人話就是 迴圈按行讀取檔案內容 { fscanf(fp,"%d",&i); line[j]=i; j++; } for(i=0;i<4;i++){ printf("%d\n",line[i]); } fclose(fp); system("pause"); return 0; }

這樣line數組裡直接就是int型別的一個一個的數,就能夠直接用了。博主實在是蠢,想了好久,還請勿噴。