Informatică, întrebare adresată de Tudor99747, 8 ani în urmă

Dintr-un file se citesc 2 numere. Realizati suma si produsul acestor numere prin intermediul pointerilor. Rezultatul se va afisa in acelasi fisier txt.
In c++

Răspunsuri la întrebare

Răspuns de Apollyon
1

Răspuns:

#include <iostream>

#include <fstream>

using std::cout, std::cin, std::endl;

int main()

{

   int *primulNumar = new int, *alDoileaNumar = new int, *sumaNr = new int, *prodNr = new int;

   std::ifstream ifstream("date.in");

   if (!ifstream.good())

       exit(EXIT_FAILURE);

   ifstream >> (*primulNumar) >> (*alDoileaNumar);

   cout << "Numerele citite sunt: " << *primulNumar << " " << *alDoileaNumar << endl;

   *sumaNr = *primulNumar + *alDoileaNumar;

   *prodNr = *primulNumar * *alDoileaNumar;

   cout << "Suma numerelor este " << *sumaNr << " iar produsul lor este " << *prodNr << endl;

   std::ofstream ofstream("date.in", std::ios_base::app);

   if (!ofstream.good())

       exit(EXIT_FAILURE);

   ofstream << "\n" << *sumaNr << " " << *prodNr << "\n";

   delete primulNumar;

   delete alDoileaNumar;

   delete sumaNr;

   delete prodNr;

   ifstream.close();

   ofstream.close();

   return 0;

}

Explicație:

  • Ai 4 pointeri, 2 pentru cele două numere, unu pentru sumă iar celălalt pentru produs.
  • Aloci spațiu pentru fiecare-n parte.
  • Citești cele două numere folosind un ifstream și le salvezi în interiorul celor 2 pointeri.
  • Aduni cele două numere și le salvezi în pointerul pentru sumă, la fel și pentru înmulțire.
  • După te folosești de un ofstream ca să scrii rezultatul sumei și produsului în același fișier, pe altă linie.
  • La final închizi ifstreamul, ofstreamul și eliberezi memoria alocată.

Fișierul să-l denumești date.in și de ex scrii 10 20 pe prima linie, să fie-n același folder cu executabilul creat după ce compilezi .cpp-ul, dacă e în alt folder trebuie să-i specifici locația fișierului .txt în:

  • std::ifstream ifstream("date.in");

și

  • std::ofstream ofstream("date.in", std::ios_base::app);

Alte întrebări interesante