Până acum am citit de la tastatură și am afișat pe ecran — iar totul dispărea la închiderea programului. Fișierele sunt caietul: ce scrii, rămâne. Iar la BAC și pe pbinfo, datele vin aproape mereu din fișier!
Aceleași date, alt drum. Consola e tabla pe care ștergi; fișierul e caietul în care scrii.
Din <fstream>. Se poartă EXACT ca cin și cout — doar că robinetul duce la fișier, nu la consolă.
exemplul de bază din lecție
șablonul de aur: „citește CÂT E"
while (fin >> x) citește până se termină fișierul — nu trebuie să știi dinainte câte numere sunt. Idiom de BAC!
open() returnează un obiect din clasa TextIOWrapper — prima ta întâlnire oficială cu obiectele (Modulul 11 vine imediat!). Metodele lui fac tot transferul.
| mod | ce face |
|---|---|
| "r" | citire (read) — eroare dacă fișierul nu există |
| "w" | scriere (write) — creează fișierul; dacă există, ÎL GOLEȘTE! |
| "a" | adăugare (append) — scrie în continuare, la sfârșitul fișierului |
pregătirea datelor citite — cerută de programă
readline() dă un string cu \n la coadă — de-asta apar mereu int(), split() și strip() lângă el.
Editează conținutul lui date.txt, apoi rulează programul pas cu pas — privește cursorul „consumând" numerele și rezultatul născându-se în al doilea fișier.
✏ editează date.txt (numere separate prin spații/rânduri):
Cinci întrebări — capcanele clasice ale fișierelor.
Fișierele, pe scurt.
Transformați n din baza b în baza 10 — și bazele din Modulul 00 revin!
Rezolvă pe pbinfo.ro →Numerele cu cel mult 4 cifre care NU apar în lista dată — vector de frecvență + fișiere.
Rezolvă pe pbinfo.ro →Câte clase primesc pachet cu cărți? Citire de perechi din fișier.
Rezolvă pe pbinfo.ro →Interogări pe un șir sortat — căutarea binară (M08) întâlnește fișierele.
Rezolvă pe pbinfo.ro →