Скачиваний:
0
Добавлен:
20.09.2026
Размер:
206 Кб
Скачать
☆
12-Lekciya: Fayllar menen islew. Tekstli fayllar haqqında ulıwma
túsinik. Fayllar hám aǵımlar.
C++ programmalastırıw tilinde fayllar menen islew - bul málıwmatlardı
saqlaw hám oqıw ushın áhmiyetli qural. Fayllar arqalı biz málıwmatlardı uzaq múddetli saqlay alamız hám olardı qayta isley alamız. Tekstli fayllar - bul adam oqıy alatuǵın simvollardan ibarat fayllar. Olar ápiwayı tekst redaktorları menen ashılıp, oqılıwı hám ózgertiliwi múmkin. C++ te tekstli fayllar menen islew ushın <fstream> kitapxanası qollanıladı.
C++ te fayllar menen islew aǵımlar (streams) arqalı ámelge asırıladı. Aǵımlar - bul málıwmatlardı jiberiw ushın qollanılatuǵın abstrakt túsinik. Úsh tiykarǵı aǵım túri bar:
- ifstream: fayldan oqıw ushın
- ofstream: faylǵa jazıw ushın
- fstream: hám oqıw, hám jazıw ushın
Fayldı ashıw hám jabıw:
Fayldı ashıw ushın:
#include <fstream>
ifstream file("file.txt"); // Oqıw ushın
ofstream file("file.txt"); // Jazıw ushın
Fayldı jabıw ushın:
file.close();
Faylǵa jazıw:
ofstream file("file.txt");
if (file.is_open()) {
file << "Bul tekst faylǵa jazıladı." << endl;
file.close();
}
Fayldan oqıw:
ifstream file("file.txt");
string line;
if (file.is_open()) {
while (getline(file, line)) {
cout << line << endl;
}
file.close();
}
Fayl halatın tekseriw:
if (!file) {
cout << "Fayl ashılmadı!" << endl;
}
Fayl poziciyasın basqarıw:
- seekg() hám seekp() funkciyaları fayldaǵı poziciyanı ózgertiw ushın qollanıladı.
- tellg() hám tellp() funkciyaları aǵımdaǵı poziciyanı biliw ushın qollanıladı.
Binar fayllar:
Tekstli fayllardan ayırmashılıǵı, binar fayllar málıwmatlardı kompyuter oqıy alatuǵın formatta saqlaydı.
Binar fayllar menen islew:
Binar fayllar menen islew ushın fayldı ashqanda ios::binary rejimin kórsetiw
kerek:
ofstream file("data.bin", ios::binary);
ifstream file("data.bin", ios::binary);
Binar fayllarǵa jazıw hám oqıw ushın write() hám read() funkciyaları qollanıladı:
int number = 42;
file.write(reinterpret_cast<char*>(&number), sizeof(number));
file.read(reinterpret_cast<char*>(&number), sizeof(number));
Qátelerdi basqarıw:
Fayllar menen islegende qáteler júz beriwi múmkin. Olardı basqarıw ushın try­catch blokların qollanıw múmkin:
try {
ifstream file("nonexistent.txt");
if (!file) {
throw runtime_error("Fayl ashılmadı!");
}
// Fayl menen islew...
}
catch (const exception& e) {
cerr << "Qáte: " << e.what() << endl;
}
Fayl atributların tekseriw:
<filesystem> kitapxanası arqalı fayl atributların tekseriw múmkin:
#include <filesystem>
namespace fs = std::filesystem;
if (fs::exists("file.txt")) {
cout << "Fayl bar" << endl;
cout << "Fayl ólshemi: " << fs::file_size("file.txt") << " bayt" << endl;
}
Direktoriyalar menen islew: <filesystem> kitapxanası direktoriyalar menen islewge de múmkinshilik beredi:
fs::create_directory("new_folder");
for (const auto& entry : fs::directory_iterator("some_folder")) {
cout << entry.path() << endl;
}
Fayllardı kóshiriw hám óshiriw:
fs::copy("source.txt", "destination.txt");
fs::remove("old_file.txt");
C++ te fayllar menen islew programmistlerge málıwmatlardı saqlaw, oqıw hám basqarıw ushın kúshli qurallar usınadı. Tekstli hám binar fayllar menen islew, qátelerdi basqarıw hám fayl sisteması operaciyaların orınlaw múmkinshilikleri C++ ti kóp tarawlarda qollanıwǵa imkan beredi.
ÁMELIY MÍSALLAR
1. Tekstli fayl jaratıw hám oǵan jazıw:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream file("example.txt");
if (file.is_open()) {
file << "Sálem, dúnya!" << endl;
file << "Bul ekinshi qatar." << endl;
file.close();
cout << "Fayl sátli jazıldı." << endl;
} else {
cout << "Fayldı ashıw qátesi!" << endl;
}
return 0;
}
Bul mısalda:
- `ofstream` klasın qollanıp "example.txt" faylın jaratamız.
- `is_open()` funkciyası arqalı fayldıń ashılǵanın tekseremiz.
- `<<` operatorı arqalı faylǵa tekst jazamız.
- `close()` funkciyası menen fayldı jabamız.
2. Tekstli fayldan oqıw:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream file("example.txt");
string line;
if (file.is_open()) {
while (getline(file, line)) {
cout << line << endl;
}
file.close();
} else {
cout << "Fayldı ashıw qátesi!" << endl;
}
return 0;
}
Bul mısalda:
- `ifstream` klasın qollanıp fayldı oqıw ushın ashamız.
- `getline()` funkciyası arqalı fayldan qatarma-qatar oqıymız.
- Hár bir oqılǵan qatardı ekranǵa shıǵaramız.
3. Faylǵa qosımsha maǵlıwmat jazıw (append):
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream file("example.txt", ios::app);
if (file.is_open()) {
file << "Bul qatar fayl aqırına qosıladı." << endl;
file.close();
cout << "Maǵlıwmat faylǵa qosıldı." << endl;
} else {
cout << "Fayldı ashıw qátesi!" << endl;
}
return 0;
}
Bul mısalda:
- `ios::app` parametri arqalı fayldı qosımsha jazıw rejiminde ashamız.
- Jańa maǵlıwmattı fayl aqırına qosamız.
4. Fayldaǵı sózlerdi sanaw:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream file("example.txt");
string word;
int count = 0;
if (file.is_open()) {
while (file >> word) {
count++;
}
file.close();
cout << "Fayldaǵı sózler sanı: " << count << endl;
} else {
cout << "Fayldı ashıw qátesi!" << endl;
}
return 0;
}
5. Fayl bar-joqlıǵın tekseriw:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
string filename = "example.txt";
ifstream file(filename);
if (file.good()) {
cout << filename << " faylı bar." << endl;
file.close();
} else {
cout << filename << " faylı tabılmadı." << endl;
}
return 0;
}
Bul mısalda:
- `ifstream` obektin jaratıp, fayldı ashıwǵa háreket etemiz.
- `good()` funkciyası arqalı fayldıń bar ekenin hám oqıwǵa tayar ekenin tekseremiz.
6. Fayldan sanlıq maǵlıwmatlardı oqıw:
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream file("numbers.txt");
int number;
int sum = 0;
if (file.is_open()) {
while (file >> number) {
sum += number;
}
file.close();
cout << "Fayldaǵı sanlardıń jıyındısı: " << sum << endl;
} else {
cout << "Fayldı ashıw qátesi!" << endl;
}
return 0;
}
Bul mısalda:
- Fayldan sanlardı oqıymız.
- Hár bir oqılǵan sandı jıyındıǵa qosamız.
7. Fayldı qatarma-qatar oqıw hám jazıw:
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
int main() {
ifstream inputFile("input.txt");
ofstream outputFile("output.txt");
string line;
if (inputFile.is_open() && outputFile.is_open()) {
while (getline(inputFile, line)) {
outputFile << line << " - kóshirildi" << endl;
}
inputFile.close();
outputFile.close();
cout << "Fayl kóshirildi hám ózgertildi." << endl;
} else {
cout << "Fayldı ashıw qátesi!" << endl;
}
Соседние файлы в папке 1-semestr