Anfänger Pobleme C++ 

Status
Für weitere Antworten geschlossen.

TehEbil

Registered +
Registriert
März 2009
Beiträge
61
So, ich fange jetzt bereits zum 3. mal mit C++ an. Habe zuvor schon 2 mal vergebens angefangen, da ich an bestimmten Stellen einfach nicht weitergekommen bin.

Also ich habe beim 2. mal mit nem Programm gearbeitet, wessen Name ich jetzt vergessen habe, was aber auch jeder kennt. Dieses Programm ist aber auch outdated, ich glaube Dev c++ oder so. Aufjedenfall habe ich jetzt mit Visual 2008 angefangen, womit ich ehrlich gesagt nicht wirklich klarkomme.
Egal, also früher habe ich mit
PHP:
using namespace std;
gearbeitet und jetzt fang ich ohne damit an. Nach dem Compilen etc. und Ausführen des Programmes schließt sich das Fenster einfach. Also er gibt innerhalb 10ms oder was weiß ich den Output an und schließt sich direkt. Ich denke, dass das verständlich ist, was ich meine. Also früher habe ich dies mit cin.get() verhindert, was jedoch nur eine alternative ist. Gibt es sonst noch Möglichkeiten, dass sich das Fenster nicht einfach schließt? Cin.get() [ bzw. std::cin.get() ] hilft ja nicht immer.. (d.h. dass sich das Fenster trotzdem manchmal einfach schließt.)

Und wenn man eine int eingabe macht, dann anstatt eine Zahl ein Buchstabe eingibt, schließt sich das Fenster ja auch. Was kann man dagegen machen? Anstatt int einen anderen Datentyp wählen?
 
zum ersten du benutzt den debug modus probiers mal mit strg f5 das sollte besser gehen
zweitens musst du abfangen oder falls du buchstaben haben willst den richtigen datentyp wählen.
ich empfehle dir mal noch das buch c++ von a bis z von galileo computing
 
mit Abfangen meinst du jetzt mit if (a-z, A-Z, !"§$%&/....... ) undso??
Buchstaben will ich ya nicht haben, sondern einfach nur ne Zahl, jedoch wenn man anstatt einer Zahl etwas anderes eingibt, zb bei Int a --> Cin>>a dann da 5 eingibt, schließt sich das Programm einfach.
 
nein nicht direkt
Code:
#include 
#include 
#include 

using namespace std;



int getint(void) {
int i;
string tmp;
stringstream s1;

cin >> tmp;
s1 if (!(s1 >> i)) {
cin.clear();1
cin.ignore(numeric_limits::max(),'\n');
// numeric_limits::max() durch hohe Zahl ersetzt
i = -1;
}
else {
s1.clear();
s1.str("");
s1 if (s1.str() != tmp) i = -1;
} 

return i;
}
so hab ichs mal gemacht gibt aber bestimt auch andere lösungen
oder was meinst du?
 
woah, das ist ja ziehmlich lang für so n kleinen mist ;D Kp, ich denke mal, dass es da noch was anderes gibt. Der Entwickler von C++ hat bestimmt nicht einfach so Sinnlos gecoded.
Eine eigene Lösung hab ich nicht, außer halt wie du es auch schon angedeutet hast, aussortieren mit if.... dann return i. Aber meiner Meinung nach ist dies auch relativ lang. Jeder benutzt doch diesen Datentyp.. Wenn es so 100 Millionen Programme gibt, und die alle das Problem mit Int haben, nya dann kp :D


//Edit:
btw. hier mal mein billiger rechner ;D Ist sogar fast peinlich sowas zu zeigen, hab kp warum das nicht geht.

Was genau hat es eigentlich mit dem ctrl + F5 Debugger aufsich? bis auf Drücken sie eine beliebige Taste am Ende war da nichts. Nun bin ich mit meinem 1. Immer noch nicht weiter gekommen ;D

PHP:
#include 

int main()
{
std::cout  double ErsteZ;
double ZweiteZ;
double Operator;
double Ergebnis;
std::cin >> ErsteZ;
std::cout  std::cin >> ZweiteZ;
std::cout  )"  std::cin >> Operator;

if(Operator=='+')
{
Ergebnis = ErsteZ + ZweiteZ;
std::cout  std::cin.get();
return 0;
}

if(Operator=='-')
{
Ergebnis = ErsteZ - ZweiteZ;
std::cout  std::cin.get();
return 0;
}

if(Operator=='*')
{
Ergebnis = ErsteZ * ZweiteZ;
std::cout  std::cin.get();
return 0;
}

if(Operator=='/')
{
Ergebnis = ErsteZ / ZweiteZ;
std::cout  std::cin.get();
return 0;
}
}
 
Zuletzt bearbeitet von einem Moderator:
Hallo
So geht es einfacher
1) Operator ist char.
2) Ergebniss berechnen und am Enden ausgeben
3) Warte auf Tastatur eingabe mit getch

Grüsse
biernase

PHP:
#include "stdafx.h"
#include  
#include "conio.h"


int _tmain(int argc, _TCHAR* argv[])
{
std::cout  double ErsteZ; 
double ZweiteZ; 
char Operator; 
double Ergebnis=0; 
std::cin >> ErsteZ; 
std::cout  std::cin >> ZweiteZ; 
std::cout  )"  std::cin >> Operator; 

if(Operator=='+') 
{ 
Ergebnis = ErsteZ + ZweiteZ; 
}


if(Operator=='-') 
{ 
Ergebnis = ErsteZ - ZweiteZ; 

} 

if(Operator=='*') 
{ 
Ergebnis = ErsteZ * ZweiteZ; 
} 

if(Operator=='/') 
{ 
if (ZweiteZ != 0)
{
Ergebnis = ErsteZ / ZweiteZ; 
}
} 

std::cout  _getch ();

return 0;
}
 
mh so wirklich hilft mir das ja nichts, da ich ja selber wieder anfange mit coden, und ich nur diese 2 Sachen da wissen wollte, optimieren kommt irgendwann am schluss ;D
Aber wieso operator als char? und was genau bewirkt _getch?
 
1) Operator als char: +, -, *, / sind nunmal keine Zahlen, schon gar nicht double...
2) getch: wartet (nach der letzten Ausgabe) auf eine beliebige Eingabe mit der Tastatur.

Grüsse
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten