Prelucrarea fișierelor în limbajul C++

:: Vă recomandăm ca în sursa programelor să nu utilizați diacritice.

Vă invităm să aplicăm cunoștințele dobândite.

Testul nr. 1

  1. Care este modul corect de a deschide un fișier pentru citire în C++?



  2. Care dintre următoarele este o metodă corectă de a verifica dacă un fișier s-a deschis cu succes?



  3. Ce face instrucțiunea fin.get(ch) când fin este un obiect ifstream și ch este de tip char?



  4. Cum se deschide un fișier pentru scriere în modul adăugare, fără a șterge conținutul existent?



  5. Care dintre următoarele metode citește o linie completă de text dintr-un fișier text?



  6. Ce se întâmplă dacă se deschide un fișier pentru scriere folosind ofstream fără a specifica modul ios::app și fișierul există deja?



  7. Care este scopul funcției fin.close() în prelucrarea fișierelor?



  8. Pentru a scrie mai multe valori separate prin spațiu într-un fișier, putem folosi:



  9. Care este tipul de variabilă cel mai potrivit pentru a citi dintr-un fișier un șir de caractere care poate conține spații?



  10. Dacă vrem să citim un număr întreg din fișierul date.in, care este forma corectă?



Test Drag & Drop – Fișiere în C++

Trage răspunsul corect în dreptul fiecărei întrebări:

1. Ce librărie se include pentru fișiere?
2. Tipul obiectului pentru citire fișier:
3. Cum deschizi fișierul date.txt pentru scriere?
4. Cum citești un număr întreg din fin?
5. Instrucțiune pentru închiderea fișierului:

Răspunsuri:

ifstream
fin >> numar;
#include <fstream>
ofstream fout("date.txt");
fin.close();

Probleme (1):

1. Să se citească un număr întreg din fișierul numar.in și să se afișeze pătratul lui în numar.out.
#include <iostream> #include <fstream> using namespace std; int main() { ifstream fin("numar.in"); ofstream fout("numar.out"); int x; fin >> x; fout << x * x; fin.close(); fout.close(); return 0; }
2. Să se citească din fișierul date.in două numere întregi și să se scrie în date.out suma lor.
#include <iostream> #include <fstream> using namespace std; int main() { ifstream fin("date.in"); ofstream fout("date.out"); int a, b; fin >> a >> b; fout << a + b; fin.close(); fout.close(); return 0; }
3. Fișierul vector.in conține pe prima linie un număr n, iar pe a doua linie n numere întregi. Să se scrie în vector.out valorile crescute cu 1.
#include <iostream> #include <fstream> using namespace std; int main() { ifstream fin("vector.in"); ofstream fout("vector.out"); int n, x; fin >> n; for (int i = 0; i < n; i++) { fin >> x; fout << x + 1 << " "; } fin.close(); fout.close(); return 0; }
4. Să se determine câte numere pare se află în fișierul pare.in care conține pe o linie n numere. Rezultatul se scrie în pare.out.
#include <iostream> #include <fstream> using namespace std; int main() { ifstream fin("pare.in"); ofstream fout("pare.out"); int x, cnt = 0; while (fin >> x) { if (x % 2 == 0) cnt++; } fout << cnt; fin.close(); fout.close(); return 0; }
5. Fișierul cuvant.in conține un șir de caractere. Să se determine și să se scrie în cuvant.out câte vocale conține șirul.
#include <iostream> #include <fstream> #include <cctype> using namespace std; bool esteVocala(char c) { c = tolower(c); return c == 'a' || c == 'e' || c == 'i' || c == 'o' || c == 'u'; } int main() { ifstream fin("cuvant.in"); ofstream fout("cuvant.out"); char c; int cnt = 0; while (fin.get(c)) { if (esteVocala(c)) cnt++; } fout << cnt; fin.close(); fout.close(); return 0; }

Probleme (2):

Enunț 1: Scrieți un program care citește de la tastatură n linii și le scrie într-un fișier text, prin adăugare, până la acționarea tastei #.

Enunț 2: Scrieți un program care să afișeze ecran conținutul unui fișier text.

Enunț 3: Se citește dintr-un fișier numit date4.in, pe prima linie numărul de elemente ale unui șir de numere reale, iar pe a doua linie elementele șirului. Să se afișeze pe ecran maximul, minimul și câtul dintre maxim și minim. Atenție: dacă minimul este 0, se va afișa un mesaj corespunzător în locul câtului.

Enunț 4: Se citesc două numere întregi a și b de la tastatură. Să se scrie într-un fișier pare.txt toate numerele pare din intervalul închis [a, b], în ordine crescătoare.