Laboratoriya mashg‘uloti
Download 255.17 Kb.
|
1 2
Bog'liqamaliyot 12
- Bu sahifa navigatsiya:
- Matnli fayllar yordamida dasturlar tuzish Topshiriq 1.
- Natija : Topshiriq 2.
- Topshiriq 3.
- Topshiriq 4.
Laboratoriya mashg‘uloti - 9.2. Mavzu: Fayllar bilan ishlashga doir dastur tuzish Reja: Formatlangan kiritish uchun manipulyatorlardan qanday foydalanishni bilib olish; getline, get va put funksiyalaridan foydalanishni o’rganish; Matnli fayllar yordamida dasturlar tuzish Topshiriq 1. Chiqish faylini formatlash uchun siz oqim tugmachasidan foydalanib dastur yozishingiz kerak. Dastur kodi: Listing 8.2.1 WriteFormattedData.cpp #include #include #include using namespace std; int main() { ofstream output; // Create a file output.open("formattedscores.txt"); // Write two lines output< << " " << setw(4) << 90 << endl; output< << " " << setw(4) << 85; output.close(); cout << "Done" << endl; return 0; } Natija: Topshiriq 2. Siz getline, get va put funktsiyalaridan foydalanib fayldan ma'lumotlarni o'qiydigan dastur yozishingiz kerak. Dastur kodi: Listing 8.2.2 ReadCity.cpp #include #include #include using namespace std; int main() { // Open a file ifstream input("state.txt"); if (input.fail()) { cout << "File does not exist" << endl; cout << "Exit program" << endl; return 0; } // Read data string city; while (!input.eof()) // Continue if not end of file { getline(input, city, '#'); cout << city << endl; } input.close(); cout << "Done" << endl; return 0; } Natija: getline (kiritish, holat, '#') qo'ng'iroq (23-qator) belgilar va fayl oxiriga duch kelguncha massiv holatiga o'tadi. Boshqa ikkita foydali xususiyat - bu olish va qo'yish. Belgini o'qish uchun kirish ob'ektidagi get funktsiyasini chaqirishingiz mumkin va belgi yozish uchun chiqish ob'ektidagi qo'yish funktsiyasini chaqirishingiz mumkin. Topshiriq 3. Siz foydalanuvchiga faylni kiritishni taklif qiladigan dasturni yozishingiz va uni yangi faylga nusxalashingiz kerak. Dastur kodi: Listing 8.2.3 CopyFile.cpp #include #include #include using namespace std; int main() { // Enter a source file cout << "Enter a source file name: "; string inputFilename; cin >> inputFilename; // Enter a target file cout << "Enter a target file name: "; string outputFilename; cin >> outputFilename; // Create input and output streams ifstream input(inputFilename.c_str()); ofstream output(outputFilename.c_str()); if (input.fail()) { cout << inputFilename << " does not exist" << endl; cout << "Exit program" << endl; return 0; } char ch = input.get(); while (!input.eof()) // Continue if not end of file { output.put(ch); ch = input.get(); // Read next character } input.close(); output.close(); cout << "\nCopy Done" << endl; return 0; } Natija: Dastur foydalanuvchiga 11-qatorga manba faylining nomini va 16-qatorda maqsadli fayl nomini kiritishni taklif qiladi, kirishFilename uchun kirish ob'ekti 19-satrda yaratilgan va 20-qatorda outputFilename uchun chiqish ob'ekti. Fayl nomlari C-Strings bo'lishi kerak. inputFilename.c_str () inputFilename satridan C-satrlarni qaytaradi. 22-27 qatorlar kirish fayli mavjudligini tekshiradi. 30-34-qatorlar ketma-ketlik bilan funktsiyani ishlatib, belgilarni ketma-ket o'qiydi va Put funktsiyasidan foydalanib, chiqish fayliga belgi yozadi. 29-34-qatorlar quyidagi kod bilan almashtirilgan deylik. while (!input.eof()) // Continue if not end of file { output.put(input.get()); } Nima bo'ladi? Agar siz ushbu yangi kod bilan dasturni ishlatsangiz, yangi fayl aslidan bir bayt kattaroq ekanligini ko'rasiz. Yangi fayl oxirida qo'shimcha axlat belgisini o'z ichiga oladi. Buning sababi, kirish faylidan so'nggi belgi input.get () yordamida o'qilganda, input.eof () hali ham noto'g'ri. Shundan so'ng, dastur boshqa belgini o'qishga harakat qiladi; input.eof () endi haqiqat bo'lib bormoqda. Biroq, chiqindi fayliga tashqi axlat belgisi allaqachon yuborilgan. Listing 8.7-dagi to'g'ri kod belgini (29-qator) o'qiydi va eof () ni tekshiradi (30-qator). Agar eof () to'g'ri bo'lsa, belgi chiqarilmaydi; aks holda u ko'chiriladi (32-qator). Bu jarayon eof () qiymati qaytgunicha davom etadi. Topshiriq 4. Siz City.txt (11-qator) deb nomlangan yangi fayl yaratadigan va faylga ma'lumotlarni yozadigan dastur yozishingiz kerak. Keyin dastur faylni yopadi va yangi ma'lumotlarni qo'shish uchun uni yana ochadi (19-qator), lekin uni ustiga yozmaydi. Download 255.17 Kb. Do'stlaringiz bilan baham: |
1 2
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling