Kezdőoldal » Számítástechnika » Programozás » Mi a hiba ebben a c++ programb...

Mi a hiba ebben a c++ programban? (kezdő)

Figyelt kérdés

#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();

}



2012. nov. 8. 21:24
 1/7 anonim ***** válasza:

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. :)

2012. nov. 8. 22:02
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

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.

2012. nov. 8. 22:05
Hasznos számodra ez a válasz?
 3/7 anonim ***** válasza:
Azt meg mondjuk nem értem, hogy ha használod az std névteret, akkor utána miért std::-zel mindenhol.
2012. nov. 8. 22:06
Hasznos számodra ez a válasz?
 4/7 iostream ***** válasza:

"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.

2012. nov. 8. 22:28
Hasznos számodra ez a válasz?
 5/7 anonim ***** válasza:

"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?

2012. nov. 8. 23:01
Hasznos számodra ez a válasz?
 6/7 A kérdező kommentje:

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?

2012. nov. 9. 07:37
 7/7 iostream ***** válasza:
Az '1' értéke jó eséllyel '0' + 1, az 1 értéke pedig pontosan 1. Te beolvasol egy számot, amit beírtak karakteresen, a cin látja, hogy int-be akarod beolvasni, akkor lesz olyan jó arc, és átalakítja neked kettes komplemensű bináris formátumba, és belerakja az int-be. Ezután a case-ekben te KARAKTER literálokkal akarod összehasonlítani, ami lehetséges, csak nem úgy működik, ahogy te elképzeled, úgy tűnik.
2012. nov. 9. 09:32
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!