ファイルを一度読み込んでその中に含まれる行の数を確認し、再度読み込んで各行のデータを配列に格納することができます。ファイルを閉じて再び開くよりも2回読む方が良い方法はありますか?ここに私が持っているものがありますが、それは非効率的だと恐れています。同じファイルを2回連続して読み込む方法
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
情報を格納するのに'ベクトル '最初にファイルから読み込むと、ベクタはメモリが必要になると自動的にサイズが変更されます。 –
[こちら](http://en.cppreference.com/w/cpp/io/basic_ostream/seekp)をご覧ください。たぶん[ここ](http://en.cppreference.com/w/cpp/io/basic_istream/seekg)。 – ChiefTwoPencils