0

これは、入力をテキストファイルに書き込むための私のコードです

ofstream fout("C:\\det.txt",ios::app);
fout << input << endl;
fout.close();

このプログラムは機能していますが、複数の入力を入力すると、出力は次のようになります

Output

four
three
two

上記の出力では、2 が最後のエントリで、4 が最初のエントリですが、逆の順序で入力したい場合は、最新の入力が最初に表示されるようにする必要があります

Required output

two // latest entry
three // 2nd latest entry
four // 3rd entry
4

2 に答える 2

1

ファイルの内容をベクトルに入れ、ベクトルを逆にして、文字列をファイルに再挿入します。

std::fstream file("C:\\det.txt", std::ios_base::in);

std::vector<std::string> lines;
std::string line;

while (std::getline(file, line))
{
    if (!line.empty())
        lines.push_back(line);
}

file.close();
file.open("C:\\det.txt", std::ios_base::trunc | std::ios_base::out);

std::copy(lines.rbegin(), lines.rend(), std::ostream_iterator<std::string>(file, "\n"));
于 2013-11-10T17:21:57.050 に答える