Fayllar bilan ishlashning yangi usullari



Yüklə 32,97 Kb.
səhifə1/4
tarix25.01.2023
ölçüsü32,97 Kb.
#80803
  1   2   3   4
Fayllar bilan ishlashning yangi usullari


Fayllar bilan ishlashning yangi usullari(1/O texnologiyasi).

Eng dasturiy ta'minot dasturlari fayllar bilan ishlash, va shuning uchun u yaratish uchun zarur bo'lgan, olib
tashlash, write o'qish, ochiq fayllar. Agar fayl nima? Fayl - bayt bir ismli yig'ish, saqlash qurilmasiga saqlanishi
mumkin. Yaxshi, u endi aniq, Agar fayl bayt tartib ekanligini, qaysi uning bor, noyob nomi, masalan, файл.txt.
Shu katalog bir xil nom bilan fayllarni o'z ichiga olmaydi. Fayl nomi ostida uning nomi bilan emas, balki faqat
tushuniladi, balki kengaytirish, masalan,: file.txt va file.dat – boshqa fayllar, va hatto bir xil nom bor.
Bunday narsa bor, Fayl nomi bilan katalog fayl uchun to'liq manzil - faylning to'liq nomi sifatida,
masalan,: D:\docs\file.txt. Bu asosiy tushunchalarni tushunish muhim emas, aks holda fayllar bilan
ishlash uchun qiyin bo'ladi. Fayllar bilan ishlash uchun siz header faylni o'z ichiga
kerak IN  belgilangan bir necha sinflar va header file  – Kirish fayli
va  – chiqdi fayl.
Fayl I / O I / O standarti o'xshaydi, faqat farq - deb, deb I / O ekranda ijro emas, va tasvir. Standart I / O
qurilmalar moslamalarni foydalanib amalga oshiriladi bo'lsa cin va cout, Tashkilot fayl uchun I / O o'z
moslamalarni yaratish uchun etarli emas, qaysi operatorlari o'xshash foydalanish mumkin cin va cout.
Masalan, Agar matn faylini yaratish va quyidagi qatorni yozish kerak Работа с файлами в С++. Buning
uchun quyidagi amallarni bajaring:

  1. sinf ob'ektini yaratish ofstream;

  2. a sinf faylni bog'langan, qaysi yozilur;

  3. faylida bir chiziq yozish;

  4. Faylni o'chirish.

Nima uchun men sinf ob'ektini yaratish kerak ofstream, o'rniga sinf ifstream? Chunki, Agar fayl bir kirib
qilish kerak, va bir-agar fayl ma'lumotlarini o'qib edi, Bu sinfning bir obyekti yaratgan bo'lardi ifstream.

1
2

// создаём объект для записи в файл
ofstream /*имя объекта*/; // объект класса ofstream

Biz ob'ekt qo'ng'iroq - fout, Bu erda nima sodir bo'ldi:



1

ofstream fout;

Nima uchun biz e'tiroz qilish? Ob'ektni ehtiyojlari, bir faylga yozish imkoniyatiga ega bo'lish uchun. Allaqachon


ob'ekt yaratilgan, lekin u fayl bilan bog'liq emas, ketma-ket qayd qilinadi.

1

fout.open("cppstudio.txt"); // связываем объект с файлом

Operatsiya nuqtasi so'ng biz ochiq sinf usuli foydalanish imkoniyatiga ega(), fayl nomini ko'rsatib dumaloq


qavs ichida. Ushbu fayl dasturi bilan joriy katalogda tashkil etiladi. Shu nom bilan fayl mavjud bo'lsa, mavjud
fayl ustiga yoziladi. Shunday, Fayl ochildi, U mos satr yozilgan chap. Bu erda qanday bo'ldi:


1

fout << "Работа с файлами в С++"; // запись строки в файл

Ob'ekt bilan birga oqim transfer jarayonida foydalanish fout chiziq Работа с файлами в С++ bir faylga
yozilgan.
Fayl mazmunini o'zgartirish uchun hech qanday qo'shimcha ehtiyoj bor beri, Bu yopish uchun zarur bo'lgan,
ya'ni, fayl ob'ektini ajratish uchun.

1

fout.close(); // закрываем файл

natija - fayl bilan mag'lubiyatga bilan yaratilgan 


Работа с файлами в С++.
Qadamlar 1 va 2 birlashtirilishi mumkin, ya'ni, bir chiziq, bir ob'ekt yaratish va fayl bilan bog'lash uchun. Bu
erda qanday bo'ldi:

1

ofstream fout("cppstudio.txt"); // создаём объект класса ofstream и связываем его с файлом cppstudio.txt






Kodi barcha va quyidagi dastur birlashtiruvchi.



1
2
3
4
5
6
7
8
9
10
11
12
13
14

// file.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include
using namespace std;
int main(int argc, char* argv[])
{
ofstream fout("cppstudio.txt"); // создаём объект класса ofstream для записи и связываем его с файлом cppstudio.txt
fout << "Работа с файлами в С++"; // запись строки в файл
fout.close(); // закрываем файл
system("pause");
return 0;
}

Bu dasturning to'g'ri ishlashini tekshirish uchun qolmoqda, Lekin buni amalga oshirish, faylni


ochish cppstudio.txt va uning mazmuni qarash, bo'lishi kerak – Работа с файлами в С++.
Faylni o'qish uchun bir xil amallarni bajarish kerak bo'ladi, va ozgina o'zgartirishlar bilan bir faylga yozishda:

  1. sinf ob'ektini yaratish ifstream va fayl bilan bog'lash, qaysi o'qish bo'ladi;

  2. Faylni o'qib;

  3. Faylni o'chirish.



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

// file_read.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include
#include
using namespace std;
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "rus"); // корректное отображение Кириллицы
char buff[50]; // буфер промежуточного хранения считываемого из файла текста
ifstream fin("cppstudio.txt"); // открыли файл для чтения
fin >> buff; // считали первое слово из файла
cout << buff << endl; // напечатали это слово
fin.getline(buff, 50); // считали строку из файла
fin.close(); // закрываем файл
cout << buff << endl; // напечатали эту строку
system("pause");
return 0;
}

dastur faylga o'qish uchun ikki yo'l ko'rsatadi, birinchi - yashayotganimizni transfer operatsiya yordamida,


ikkinchi - yordamida getline(). Birinchi holda, faqat birinchi so'z o'qiladi, va ikkinchi chiziq o'qiladi, uzun 50
Fe'l. Lekin fayl kamroq qoladi, deb 50 Fe'l, va oxirgi shu jumladan up belgilarni o'qish. Esda tuting, bu ikkinchi
marta o'qib (chiziq 17) davom, birinchi so'zdan keyin, juda bilan boshlangan nisbatan, birinchi so'z o'qib
qilindi chiziq 14. chiqish, shakl ko'rsatilgan 1.
Ish
C fayllar
Davom ettirish uchun, biron-bir kalit bosing . . .
Dastur to'g'ri ishlagan, lekin har doim emas, shuning uchun, hatto holda, kodi barcha okay agar. Masalan, a
yo'q faylning nomi yoki xato nomi o'tkazilishi dastur. Keyin nima? Bu holatda, hech narsa sodir. Fayl topilmadi,
va shuning uchun u o'qish mumkin emas. Shuning uchun, derleyici chiziq e'tibor beradi, ish fayl ustida amalga
oshiriladi, qaerda. O'chirish uchun dastur natijasida, lekin hech narsa, ekran ko'rsatiladi qilinmaydi. Shunday
vaziyatga bir normal reaksiya ekanligini ko'rinadi. Lekin oddiy foydalanuvchi aniq bo'lmaydi, nima u va nima
uchun ekranda faylning bir mag'lubiyatga paydo emas. Shunday, har bir narsa bir vazifani beradi C juda aniq
bo'lishi uchun – is_open(), qaysi integer qadriyatlarini qaytaradi: 1 – Fayl muvaffaqiyatli ochildi bo'lsa, 0 –
Fayl ochildi bo'lsa. Fayl ochish bilan dasturi maromiga, Shunday qilib,, Xabar ochish emas fayl ko'rsatiladi, agar.



// file_read.cpp: определяет точку входа для консольного приложения.
#include "stdafx.h"
#include
#include
using namespace std;
int main(int argc, char* argv[])
{
setlocale(LC_ALL, "rus"); // корректное отображение Кириллицы
char buff[50]; // буфер промежуточного хранения считываемого из файла текста
ifstream fin("cppstudio.doc"); // (ВВЕЛИ НЕ КОРРЕКТНОЕ ИМЯ ФАЙЛА)
if (!fin.is_open()) // если файл не открыт
cout << "Файл не может быть открыт!\n"; // сообщить об этом
else
{
fin >> buff; // считали первое слово из файла
cout << buff << endl; // напечатали это слово
fin.getline(buff, 50); // считали строку из файла
fin.close(); // закрываем файл
cout << buff << endl; // напечатали эту строку
}
system("pause");
return 0;
}

chiqish, shakl ko'rsatilgan 2.


CppStudio.com
Fayl ochilgan mumkin emas!
Davom ettirish uchun, biron-bir kalit bosing . . .

Surat 2 – C fayllar bilan ishlash


Rasmda ko'rinib turganidek, 2 dastur faylni ocholmadim bo'lish xabar. Shu sababli, Dastur fayllari bilan
ishlaydi, agar, Bu foydalanish tavsiya, is_open(), hatto, Agar ishonchingiz bo'lsa,, Fayl borligini.Ochiq fayllar
usullari
Ochiq fayllar usullari belgilar majmui fayllari foydalanish. Sinf sozlash uchun ios_base doimiy taqdim, qaysi
ochish fayllar holatini aniqlash (sm. Stol 1).

Stol 1 – ochiq fayllar usullari


Yüklə 32,97 Kb.

Dostları ilə paylaş:
  1   2   3   4




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin