Nu obții 100 de puncte sau ai nelămuriri în privința problemelor? Scrie-mi pe Instagram.
Ai găsit o greșeală, vrei să raportezi un utilizator sau vrei să comunici altceva? Folosește formularul de contact.
Vrei să ne transmiți o părere despre platformă? Folosește formularul de feedback.
Folosește următoarele shortcuturi pentru a naviga mai ușor pe platformă.
Meniu shortcuturi | ? |
Căutare probleme sau utilizatori | / |
Navigare printre rezultatele căutării | ↑, ↓ |
Meniu de contact și feedback | CTRL + Shift + F |
Ieșire din meniuri | Esc |
Setări editor | CTRL + Shift + S |
Schimbare stil editor | CTRL + Shift + E |
Șabloane de cod | CTRL + Shift + 1/2/3 |
Golire editor | CTRL + Shift + 4 |
Unele probleme în C++ cer citirea și afișarea în fișiere. Iată un exemplu, cu problema Fișiere de pe InfoAs:
Programul citește de pe prima linie a fișierului de intrare
fisiere.in
număruln
. Programul afișează pe în fișierul de ieșirefisiere.out
, același număr,n
.
Pe lângă biblioteca <iostream>
, vom folosi biblioteca <fstream>
, care vine de la file stream. Un stream (flux) este o metodă de a citi sau afișa valori. Spre exemplu, cin
este un flux de intrare prin care se pot citi date de la tastatură, iar cout
este un flux de ieșire prin care se pot afișa date pe ecran.
Pentru a declara un flux de intrare pentru un fișier, din care să putem citi valori, îl vom declara astfel:
ifstream fluxIntrare("numefisier.in");
După declararea fluxului, vom putea înlocui într-un program cin
cu fluxIntrare
, pentru a citi din fișierul numefisier.in
. După cum probabil ați ghicit, pentru flux de ieșire, avem:
ofstream fluxIesire("numefisier.out");
Pentru a fi mai ușor, multă lume numește fluxurile f
și g
, in
și out
, filein
și fileout
sau fin
și fout
. Folosiți perechea mai convenientă pentru voi.
#include <iostream>
//Avem nevoie de biblioteca <fstream> pentru fluxurile de citire/afișare din fișiere
#include <fstream>
using namespace std;
int main()
{
//Declararea fluxurilor; se recomandă declararea lor la început
ifstream filein("fisiere.in");
ofstream fileout("fisiere.out");
//Declararea variabilei n
int n;
//Citire și afișare cu fluxurile create, în loc de cin și cout
filein >> n;
fileout << n;
return 0;
}
Programul de mai sus citește un număr din fisierul fisiere.in
și îl afișează în fișierul fisiere.out
.
Dacă băgăm programul de mai sus pe InfoAs, pe problema fisiere, vom lua punctajul maxim. Dar cum putem să ne testăm codul pe Code::Blocks?
După ce am scris programul, înainte de a da Run, vom naviga sus la File -> New -> Empty file.
Vom numi fișierul cum vrem noi (în cazul nostru fisiere.in
), după care vom introduce în fișier o valoare — de exemplu 5
. Vom salva fișierul și vom apăsa Build and Run. Programul nu va afișa nimic pe ecran pentru că nu afișează nimic în consolă, ci în fișierul de ieșire fisiere.out
. Putem să deschidem fișierul dând File -> Open și deschizând fișierul.