mboost-dp1
Problem i C++ program
- Forside
- ⟨
- Forum
- ⟨
- Programmering
Jeg har programmeret en lommeregner i C++. Mit problem er, at hvis man skriver et bogstav i stedet for et tal, går den helt amok. Programmet virker perfekt, bortset fra denne irriterende "fejl".
Jeg mener, at man skal bruge if-else sætninger. Jeg har prøvet nedenstående eksempel, men det virker ikke :-(
if (x = char)
cout <<"Tallet er godkendt. Du kan fortsætte!";
else
Exit;
Jeg håber i kan hjælpe mig
På forhånd tak for hjælpen!
mvh Petrovic
Jeg mener, at man skal bruge if-else sætninger. Jeg har prøvet nedenstående eksempel, men det virker ikke :-(
if (x = char)
cout <<"Tallet er godkendt. Du kan fortsætte!";
else
Exit;
Jeg håber i kan hjælpe mig
På forhånd tak for hjælpen!
mvh Petrovic
Mange tak. Så for jeg kun 2 fejl når jeg kompiler :-D
Den vil ikke acceptere, at jeg skriver
else
exit;
Men hvad for en kommando bruger C++ så til at lukke et program??
Den vil ikke acceptere, at jeg skriver
else
exit;
Men hvad for en kommando bruger C++ så til at lukke et program??
Det har jeg prøvet. Nu ser min kode således ud:
if (x == char)
Exit(0);
Min Borland compiler skriver så 2 fejl:
i første linie skriver den: "expression syntax" efter den sluttede parentes
i anden linie skriver den: "If statement missing" efter nullet inde i parentesen.
Det kan godt være det er mig der er lidt langsom i opfattelsen, men de fejlbeskeder den kommer med, forstår jeg ikke så meget af :-(
if (x == char)
Exit(0);
Min Borland compiler skriver så 2 fejl:
i første linie skriver den: "expression syntax" efter den sluttede parentes
i anden linie skriver den: "If statement missing" efter nullet inde i parentesen.
Det kan godt være det er mig der er lidt langsom i opfattelsen, men de fejlbeskeder den kommer med, forstår jeg ikke så meget af :-(
Hehe og så har jeg da lige gennemskuet at char ikke er en variabel du har erklæret (Det troede jeg det var), men typen char (Som er en værdi mellem -127 og 127) og den kan du ikke sammenligne med.
Det du i stedet kan gøre er at bruge sætningen:
if(x <'0' || x>'9')
exit(0);
Det den sætning gør at at checke om ascii karakteren er mindre end 48 (Tegnet "0") eller om det er større end 57 (Tegnet "9").
Det du i stedet kan gøre er at bruge sætningen:
if(x <'0' || x>'9')
exit(0);
Det den sætning gør at at checke om ascii karakteren er mindre end 48 (Tegnet "0") eller om det er større end 57 (Tegnet "9").
Hvis det er til nogen hjælp, får du her hele min programkode:
#include <iostream>
#include <stdlib.h>
#include <process.h>
int main()
{
double x, y;
char tegn, ny;
do
{
cout << "Indtast det foerste tal der skal beregnes: ";
cin >> x;
cout << "Indtast om tallene skal +,-,*,/: ";
cin >> tegn;
cout << "Indtast det andet tal der skal beregnes: ";
cin >> y;
if (x == char)
exit(0);
switch (tegn)
{
case '+':
cout << "De to tal adderet giver: " << (x + y) << endl;
break;
case '-':
cout << "De to tal substraheret giver: " << (x - y) << endl;
break;
case '*':
cout << "De to tal miltipliceret giver: " << (x * y) << endl;
break;
case '/':
if(y != 0)
cout << "De to tal divideret giver: " << (x / y) << endl;
else
cout << "Det andet tal kan ikke vaere 0!" << endl;
break;
}
cout << "Vil du proeve igen (j/n): ";
cin >> ny;
} while (ny != 'n');
"PAUSE";
return 0;
}
#include <iostream>
#include <stdlib.h>
#include <process.h>
int main()
{
double x, y;
char tegn, ny;
do
{
cout << "Indtast det foerste tal der skal beregnes: ";
cin >> x;
cout << "Indtast om tallene skal +,-,*,/: ";
cin >> tegn;
cout << "Indtast det andet tal der skal beregnes: ";
cin >> y;
if (x == char)
exit(0);
switch (tegn)
{
case '+':
cout << "De to tal adderet giver: " << (x + y) << endl;
break;
case '-':
cout << "De to tal substraheret giver: " << (x - y) << endl;
break;
case '*':
cout << "De to tal miltipliceret giver: " << (x * y) << endl;
break;
case '/':
if(y != 0)
cout << "De to tal divideret giver: " << (x / y) << endl;
else
cout << "Det andet tal kan ikke vaere 0!" << endl;
break;
}
cout << "Vil du proeve igen (j/n): ";
cin >> ny;
} while (ny != 'n');
"PAUSE";
return 0;
}
Gå til top
Opret dig som bruger i dag
Det er gratis, og du binder dig ikke til noget.
Når du er oprettet som bruger, får du adgang til en lang række af sidens andre muligheder, såsom at udforme siden efter eget ønske og deltage i diskussionerne.