Nếu bạn cảm thấy thoải mái khi biên dịch C ++, thì đây là một mẹo nhỏ. Về cơ bản, tôi đặt từng dòng của tệp vào một vectơ và xuất nó thành một tệp mới bằng cách sử dụng một trình vòng lặp ngược.
#include <iostream>
#include <fstream>
#include <string>
#include <vector>
int main()
{
std::vector<std::string> fileLines;
std::string currLine;
std::ifstream inFile("input.txt");
if (inFile.is_open())
{
while (inFile.good())
{
std::getline(inFile, currLine);
fileLines.push_back(currLine);
}
inFile.close();
}
else
{
std::cout << "Error - could not open input file!\n";
return 1;
}
std::ofstream outFile("output.txt");
if (outFile.is_open())
{
std::vector<std::string>::reverse_iterator rIt;
for (rIt = fileLines.rbegin(); rIt < fileLines.rend(); rIt++)
{
outFile << *rIt;
}
outFile.close();
}
else
{
std::cout << "Error - could not open output file!\n";
return 1;
}
return 0;
}
Nếu tệp đầu ra bị thiếu ngắt dòng giữa các dòng, thì hãy thay đổi thành outFile << *rIt;
để outFile << *rIt << "\r\n";
ngắt dòng được thêm vào (bỏ qua \r
nếu bạn đang trên Unix / Linux).
Tuyên bố miễn trừ trách nhiệm: Tôi chưa kiểm tra mã này (tôi đã viết nó rất nhanh trong Notepad), nhưng có vẻ khả thi.