Citirea si Afisarea in fisiere in C++ - Tutorial Incepatori
De ce citirea din fişier?
De multe ori este necesară citirea şi afişarea în fişier, unul din motive fiind faptul că nu trebuie să reintroducem datele de intrare de fiecare dată când rulăm programul.
Cuprinsul lecției
Fluxuri de date
Înainte să trecem la citirea şi afişarea din fişier, poate fi util să cunoaştem un pic partea teoretică a fluxurilor de date.
Fluxurile de date (sau stream uri) din C++ sunt responsabile pentru input şi output (intrare/ieşire), adică pentru citire şi pentru scriere.
Când citim şi scriem în consolă, folosim cin
şi cout
(Console In şi Console Out), care sunt fluxuri standard – de aceea sunt numite şi stdin şi stdout (standard input şi standard output).
De reținut! La fel cum în consolă, când introducem date, le separăm cu spații sau cu enter, aşa trebuie şi în fişiere separate datele.
Citirea şi scrierea din fişiere
Pentru a citi şi a scrie în fişiere, avem nevoie de un flux de date pentru fişiere – de aceea folosim biblioteca intuitiv numită <fstream>
(File Stream)
Acum putem să ne creem fluxurile de date din fişiere! În general, declararea stream urilor are următoarea structură:
tipStream numeStream(dateStream);
Pentru citirea din fişier, avem nevoie de un Input File Stream (flux de citire din fişier) – adică tipStream
va fi defapt ifstream
. Vom reveni la numeStream
un pic mai târziu. La dateStream
vom scrie, între ghilimele, numele fişierului, cu tot cu extensia. De obicei, fişierul de intrare are extensia .in
pentru a fi diferențiat de cel de ieşire.
Pentru afişare, vom folosi ofstream
(Output File Stream). dateStream
va fi, la fel, numele fişierului în care vom scrie. De obicei, fişierele de ieşire au extensia .out
.
Este bine ca numele celor două fluxuri să fie apropiat – spre exemplu, mulți folosesc f
şi g
(litere consecutive în alfabet), alții folosesc filein
şi fileout
. Depinde de tine cum vrei să numeşti fişierele.
Citirea din fişier
#include <iostream>
#include <fstream>
//folosim biblioteca fstream
pentru citirea şi scrierea în fişier
using namespace std;
int main()
{
ifstream f("nume_fisier.in"); //numiți cum vreți fişierul.
//Vom citi n
şi n
numere din fişier, în timp ce le afişăm pe ecran.
int n, x;
f>>n;
for(int i = 1; i <= n; i++) {
f>>x;
cout<<x<<endl;
}
}
Afişarea în fişier
#include <iostream>
#include <fstream>
//folosim biblioteca fstream
pentru citirea şi scrierea în fişier
using namespace std;
int main()
{
ofstream g("nume_fisier.in"); //numiți cum vreți fişierul.
//Vom citi n
şi n
numere de la consolă, în timp ce le afişăm în fişier.
int n, x;
cin>>n;
for(int i = 1; i <= n; i++) {
cin>>x;
g<<x<<endl;
}
}
Citirea şi afişarea
#include <iostream>
#include <fstream>
//folosim biblioteca fstream
pentru citirea şi scrierea în fişier
using namespace std;
int main()
{
ifstream f("nume_fisier.in"); //numiți cum vreți fişierul.
ofstream g("nume_fisier.out");
//Vom citi n
şi n
numere din fişierul de intrare, în timp ce le afişăm în fişierul de ieşire.
int n, x;
f>>n;
for(int i = 1; i <= n; i++) {
f>>x;
g<<x<<endl;
}
}
În cazul în care nu ați creat fişierele, acestea se vor creea automat, şi vor fi goale inițial:

Introducem datele de intrare în fişierul de intrare şi putem să ne testăm programul!
Test din citire si afisare
Completează următoarea secvență de cod:
//numeşte intuitiv fluxul de ieşire
ifstream filein("ceva.in");
ofstream ("ceva.out");
· Vezi răspunsulRăspunde la următoarea întrebare:
Fluxul de intrare fişier se numeşte .· Vezi răspunsul