假設有一個文件,文件的每一行包括n個整數,整數之間以一個空格隔開,文件總共有m行,但是事先不知道n,m。如何每次從文件中讀取一行整數放到一個數組中。
可以分為兩步:1、首先從文件中讀入一行字符串,2、然後從這一行字符串中解析出整數。
對於第一步,我們可以有c、c++兩種風格的做法
c風格:
FILE *fp = fopen("input.txt", "r"); char buf[10000]; while(fgets(buf, 10000, fp)) { //從buf解析出整數 }
c++風格:
ifstream infile("input.txt");
string s; while(getline(infile, s)) { //從s中解析出整數 }
經過測試如果不考慮解析整數的時間,這兩種方法耗時相差不大,說明getline和fgets效率基本相同。