我通過一次讀取文件來查找它包含的行數,然後再次讀取它,這樣我就可以將每行的一些數據存儲在一個數組中。有沒有更好的方法來讀取文件兩次而不是關閉並再次打開?這是我得到的,但恐怕效率不高。如何在同一行中兩次讀取同一個文件
int numOfMappings = 0;
ifstream settingsFile("settings.txt");
string setting;
while(getline(settingsFile, setting))
{
numOfMappings++;
}
char* mapping = new char[numOfMappings];
settingsFile.close();
cout << "numOfMappings: " << numOfMappings << endl;
settingsFile.open("settings.txt");
while(getline(settingsFile, setting))
{
cout << "line: " << setting << endl;
}
即使你使用C++,你可以使用'vector'而不是數組:http://www.cplusplus.com/reference/vector/ – Patashu 2013-05-06 07:00:33
爲什麼不使用'vector <>'來存儲信息當你第一次從文件中讀取它時 - 矢量會自動調整大小,因爲它需要更多的內存。 – 2013-05-06 07:01:32
看看[這裏](http://en.cppreference.com/w/cpp/io/basic_ostream/seekp)。實際上可能[這裏](http://en.cppreference.com/w/cpp/io/basic_istream/seekg)。 – ChiefTwoPencils 2013-05-06 07:04:07