Mi a hiba ebben a c++ programban? (kezdő)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
float p;
p = 3.14;
float r;
int m;
float e;
ofstream a_file ("console.txt", ios::app);
std::cout<<"_______________________________________________________ \n";
std::cout<<"Ez a program a kor teruletet/keruletet szamitja ki. \n 1. kerulet szamitas \n 2. terulet szamitas \n 3. Korabbi eredmenyek\n";
std::cout<<"_______________________________________________________ \n";
std::cin>>m;
std::cout<<"_______________________________________________________ \n";
switch (m) {
case '1':
std::cout<<"A kerulet szamitast valasztottad. Add meg a kor atmerojet a keruletenek kiszamitasahoz. Majd nyomj entert. \n";
std::cout<<"_______________________________________________________ \n";
std::cin>>r;
std::cout<<"_______________________________________________________ \n";
e = 2*r*p;
std::cout<<"A vegeredmeny:" << e << '\n';
std::cout<<"_______________________________________________________ \n";
break;
case '2':
std::cout<< "A kor teruletenek kiszamitasat valasztottad. Add meg a kor atmerojet. Majd nyomj entert.";
std::cout<<"_______________________________________________________ \n";
std::cin>>r;
std::cout<<"_______________________________________________________ \n";
e = r*r*p;
std::cout<<"A vegeredmeny:" << e << '\n';
std::cout<<"_______________________________________________________ \n";
break;
case '3':
char asd[100];
ifstream b_file ("console.txt");
b_file>> asd;
cout<< asd;
break;
default:
std::cout<<"Hibasan adtad meg a szamot!";
a_file<<"HIBA !! ";
return;
}
a_file<<"sugar: " << r << " vegeredmeny: " << e << '\n';
std::cout<< '\n' << '\n'<< '\n' << "------------------------- \n";
std::cout<<"Kilepeshez nyomj entert!";
getchar();
getchar();
}
Nem írhatsz return a case elágazásba, helyette exit (1); kell, amihez pedig includolni kell a cstdlib-et.
Másrészt az inputfile deklarálást ki kell hozni a case elé, hogy ne csak feltételesen jöjjön létre.
Így már lefordul, de hibásnak még hibás. :)
Ha a case kapcsolódban int van, akkor utána ne karakterrel, hanem egész számmal hasonlíts.
Ha ezt is javítod akkor már működik, már csak nagyon csúnya.
"Nem írhatsz return a case elágazásba, helyette exit (1); kell, amihez pedig includolni kell a cstdlib-et."
Ez nekem új. Helyesen: nem returnölhetsz csak úgy egy int-ként megjelölt függvényből.
Amúgy amit fentebb mondtak: '1' értéke nem 1.
"Ez nekem új. Helyesen: nem returnölhetsz csak úgy egy int-ként megjelölt függvényből."
Igen, valami ilyesmit szerettem volna én is kinyögni.
", ios::app"
Ez amúgy micsoda?
köszi a válaszokat!
Az input file deklarálást kifejtenéd?
Az ‘1‘ értéke miért nem 1?
Az ios::app az hogy hagyja meg a file tartalmát.
" Ha a case kapcsolódban int van, akkor utána ne karakterrel, hanem egész számmal hasonlíts."
Ezt nem értem. Min változtassak?
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!