ファイルは、std::ifstream
クラスのコンストラクターによって開かれます。
を使用fin.seekg(std::ios::beg);
してファイルを巻き戻すこともできますが、たとえば、要素の数を事前に知る必要なく、新しい要素をプッシュするために使用できる astd::vector
またはstd::list
where を使用することをお勧めします。push_back()
ただし、宿題では、手動で割り当てられた配列とポインターを使用する必要があるように見えるため、次のようなものでうまくいきます。
#include <fstream>
#include <iostream>
#include <iterator>
int main()
{
std::ifstream fin("text.txt");
size_t n = 0;
int i;
for (; fin >> i; ++n);
fin.clear();
fin.seekg(0, std::ios::beg);
int *scores = new int[n];
std::istream_iterator<int> first(fin), last;
std::copy(first, last, scores);
std::copy(scores, scores+n, std::ostream_iterator<int>(std::cout, " "));
std::cout << "\n";
delete[] scores;
}