यदि आप 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
आप यूनिक्स / लिनक्स पर हैं)।
डिस्क्लेमर: मैंने इस कोड का परीक्षण नहीं किया है (मैंने इसे नोटपैड में वास्तविक रूप से लिखा है), लेकिन यह व्यवहार्य दिखता है।