หากคุณรู้สึกสะดวกสบายในการคอมไพล์ 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;
}
หากไฟล์เอาต์พุตไม่มีการแบ่งบรรทัดระหว่างบรรทัดดังนั้นให้เปลี่ยนoutFile << *rIt;
เป็น outFile << *rIt << "\r\n";
เพื่อให้มีการเพิ่มการแบ่งบรรทัด (ไม่ต้องใส่\r
หากคุณอยู่ใน Unix / Linux)
คำเตือน: ฉันยังไม่ได้ทดสอบรหัสนี้ (ฉันเขียนมันอย่างรวดเร็วจริงใน Notepad) แต่มันก็ดูเป็นไปได้