64. Matnli fayl berilgan. Uning oxirgi qatorni o’chiring. Natijani boshqa faylga yozing.
Quyidagi C++ kodida, matnli fayldan ma'lumot olish, oxirgi qatorni o'chirib, natijani boshqa faylga yozish uchun funksiya tuzilgan:
#include
#include
#include
using namespace std;
void oxirgi_qatorni_uchirib_yozish(string input_file, string output_file) {
ifstream in_file(input_file);
ofstream out_file(output_file);
string line;
string last_line;
if (in_file.is_open() && out_file.is_open()) {
// Fayldagi barcha qatorlarni o'qish va oxirgi qatorni saqlash
while (getline(in_file, line)) {
if (!in_file.eof()) {
out_file << last_line << endl;
}
last_line = line;
}
in_file.close();
out_file.close();
} else {
cout << "Fayl ochilmadi\n";
}
}
int main() {
string input_file, output_file;
cout << "Fayl nomini kiriting: ";
cin >> input_file;
cout << "Natijaviy fayl nomini kiriting: ";
cin >> output_file;
oxirgi_qatorni_uchirib_yozish(input_file, output_file);
cout << "Oxirgi qator o'chirildi va natijaviy faylga yozildi.\n";
return 0;
}
Ushbu kod dasturi foydalanuvchidan fayl nomini va natijaviy fayl nomini so'raydi va oxirgi_qatorni_uchirib_yozish() funksiyasini chaqiradi. Bu funksiya parameter sifatida fayl nomini va natijaviy fayl nomini qabul qiladi.
Funksiyada, faylni ochish uchun ifstream obyekti yaratiladi. Fayl ochilganligi va natijaviy faylni yaratish uchun ofstream obyekti ham yaratiladi. Fayllarning ochilganligi tekshiriladi.
Fayldagi barcha qatorlarni o'qish uchun while tsikli qo'llaniladi. Fayl oxirida bo'lgan oxirgi qatorni saqlash uchun if-operatori va last_line o'zgaruvchisi ishlatiladi. Faylni oxiriga yetguncha ham so'nggi qator natijaviy faylda yoziladi.
Funksiyadan chiqishdan oldin, "Oxirgi qator o'chirildi va natijaviy faylga yozildi." xabarini chiqaradi.
Bunday kod dasturi orqali faylning oxirgi qatori o'chiriladi va natijaviy faylda faqat o'rtadagi qatorlar qoladi.
Do'stlaringiz bilan baham: |