InformaticăliceuClasa 9usor
Fișiere în C++ - Citire și Scriere
Lucrul cu fișiere text și binare: ifstream, ofstream, fstream și operații avansate.
3 luni în urmă
0 vizualizări
20 minute
Fișiere în C++
Tipuri de Stream-uri
- •ifstream - citire din fișier (input)
- •ofstream - scriere în fișier (output)
- •fstream - citire și scriere
Citire din Fișier
1#include <iostream> 2#include <fstream> 3#include <string> 4using namespace std; 5 6int main() { 7 ifstream fin("date.in"); 8 9 if (!fin.is_open()) { 10 cout << "Eroare la deschiderea fișierului!" << endl; 11 return 1; 12 } 13 14 // Citire număr 15 int n; 16 fin >> n; 17 18 // Citire vector 19 int arr[100]; 20 for (int i = 0; i < n; i++) { 21 fin >> arr[i]; 22 } 23 24 // Citire linie completă 25 string linie; 26 getline(fin, linie); 27 28 // Citire până la EOF 29 while (fin >> n) { 30 cout << n << " "; 31 } 32 33 fin.close(); 34 return 0; 35}
Scriere în Fișier
1#include <fstream> 2using namespace std; 3 4int main() { 5 ofstream fout("date.out"); 6 7 // Scriere simplă 8 fout << "Hello World!" << endl; 9 10 // Scriere formatată 11 int arr[] = {1, 2, 3, 4, 5}; 12 for (int x : arr) { 13 fout << x << " "; 14 } 15 fout << endl; 16 17 fout.close(); 18 return 0; 19}
Moduri de Deschidere
1// Mod implicit pentru ofstream - suprascrie 2ofstream fout("fisier.txt"); 3 4// Append - adaugă la final 5ofstream fout("fisier.txt", ios::app); 6 7// Mod binar 8fstream f("date.bin", ios::binary | ios::in | ios::out); 9 10// Combinații 11fstream f("fisier.txt", ios::in | ios::out | ios::trunc);
Fișiere Binare
1#include <fstream> 2using namespace std; 3 4struct Student { 5 char nume[50]; 6 int varsta; 7 double medie; 8}; 9 10// Scriere binară 11void scrieBinar(const Student& s) { 12 ofstream fout("studenti.bin", ios::binary | ios::app); 13 fout.write(reinterpret_cast<const char*>(&s), sizeof(Student)); 14 fout.close(); 15} 16 17// Citire binară 18Student citesteBinar(int index) { 19 Student s; 20 ifstream fin("studenti.bin", ios::binary); 21 fin.seekg(index * sizeof(Student)); // Poziționare 22 fin.read(reinterpret_cast<char*>(&s), sizeof(Student)); 23 fin.close(); 24 return s; 25}
Verificare Erori
1ifstream fin("date.in"); 2 3if (!fin) { 4 cerr << "Eroare la deschidere" << endl; 5} 6 7if (fin.eof()) { 8 cout << "S-a ajuns la sfârșitul fișierului" << endl; 9} 10 11if (fin.fail()) { 12 cout << "Operație eșuată" << endl; 13}
Exemplu Complet: Copiere Fișier
1#include <fstream> 2using namespace std; 3 4bool copiereFisier(const string& sursa, const string& destinatie) { 5 ifstream fin(sursa, ios::binary); 6 ofstream fout(destinatie, ios::binary); 7 8 if (!fin || !fout) return false; 9 10 fout << fin.rdbuf(); 11 12 return true; 13}
Tutorialul te-a ajutat?
Dacă ai nevoie de ajutor personalizat, găsește un profesor calificat pentru meditații
