Pereiti prie turinio

Duomenų išvedimas


Rekomenduojami pranešimai

Sveiki, turiu tokį klausimėlį.

Uždavinio sąlyga:

http://img204.imageshack.us/img204/1443/viewercv.png

 

Mano programa:

#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>

using namespace std;

const char CDfv[] = "atkarpos.txt";
const char CRfv[] = "atkarposrez.txt";


double plotas(double a, double b, double c){

   ofstream fr(CRfv);

   double p=0, pusp=0, s;

   if((a<b+c)&&(b<a+c)&&(c<a+b)){ //tikrinama, ar is atkarpu galima sudaryti trikampi

       pusp = (a+b+c)/2;
       p=a+b+c;
       s = sqrt( pusp*(pusp-a)*(pusp-b)*(pusp-c) );

           fr << fixed << setprecision(2) << a << " "<< b << " " << c << " " << p << " " << s << endl;
           cout << fixed << setprecision(2) << a << " "<< b << " " << c << " " << p << " " << s << endl; // cout'inant paprastai tiesiai i ekrana, rodo viska kaip ir gerai
     }

}

int main()
{

   ifstream fd(CDfv);
   ofstream fr(CRfv);

   double a,b,c,d;
   fd>>d;

   for(int i=1; i<=d; i++){

       fd>>a>>b>>c;
       plotas(a, b, c);

}


fr.close();
fd.close();
return 0;
}

 

Ir yra taip, kad viską skaičiuoja lyg ir gerai, atsakymai atitinka, programa veikia, tačiau rezultatų faile išsaugo tik pirmąją eilutę, o tolesnių ne. Paprastai išvedant į ekraną viskas gerai, o saugant į failą, išsaugoma tik pirma eilutė. Gal kas turit patarimų? Beje programą būtinai reikėjo padaryti su funkcija.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

#include <iostream>
#include <fstream>
#include <iomanip>
#include <cmath>

using namespace std;

const char CDfv[] = "file.txt";
const char CRfv[] = "rez.txt";


double plotas(ofstream &fr,double a, double b, double c){

   double p=0, pusp=0, s;

   if((a<b+c)&&(b<a+c)&&(c<a+b)){ //tikrinama, ar is atkarpu galima sudaryti trikampi

       pusp = (a+b+c)/2;
       p=a+b+c;
       s = sqrt( pusp*(pusp-a)*(pusp-b)*(pusp-c) );

           fr << fixed << setprecision(2) << a << " "<< b << " " << c << " " << p << " " << s << endl;
           cout << fixed << setprecision(2) << a << " "<< b << " " << c << " " << p << " " << s << endl; // cout'inant paprastai tiesiai i ekrana, rodo viska kaip ir gerai
     }

}

int main()
{

   ifstream fd(CDfv);
   ofstream fr(CRfv);

   double a,b,c,d;
   fd>>d;

   for(int i=1; i<=d; i++){

       fd>>a>>b>>c;
       plotas(fr,a, b, c);

}



fr.close();
fd.close();
return 0;
}

Tavo kodas neveikia, nes failą "atkarposrez.txt" atidarai kiekvieną kartą kai iškvieti plotas() funkciją. Atidarius failą iš naujo jo turinys išsitrina, todėl faile likdavo tik viena eilutė.

Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

×
×
  • Pasirinkite naujai kuriamo turinio tipą...