PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem beim Programmieren! bitte um Hilfe



hydRa
25.03.2009, 20:18
Also ich benutze den Dev C++ Compile vin Bloodshed und habe mir das Buch C++ von A bis Z gekauft

aber wenn ich das hier eingebe (orginal aus dem buch ) und es dann starte kann die die zahl eingeben und dann noch eine.. normalerweise sollte er mir was ausrechnen aber sobald ich die 2te zahl eingeben habe beendet er mir das Programm.

Hier der Code:


// arith1.cpp
#include <iostream>
using namespace std;

int main(void) {
int var1, var2, var3;

cout<<"operand 1: ";
cin>>var1;
cout<<"operand 2: ";
cin>>var2;

//Berechnung direkt in cout
cout<<"Multiplikation : " <<var1<< "*"
<<var2<<"="<<(var1*var2)<<'\n';

//Berchnung in var3 zwischenspeichern
var3 = var1 +var2;
cout<<"Addition : " <<var1<< "+"
<<var2<<"="<<var3<< '\n';

//Division duch 0 vermeiden
(!var2) ?var2=1 :var2=var2;
//Berechnung direkt in cout
cout<<"Division : " <<var3<< "/"
<<var2<<"="<<(var3/var2);

//Den rest der division ermitteln
cout<<"(Rest : "<<(var3%var2)<<")\n";

//Neuen wert von var1 zuweisen
var1 = var3 - var2;
cout<<"Subtraktion : "<<var3<<"-"
<<var2<<"="<<var1<<'\n';
return 0;
}


hab ich da was flasch gemacht...
danke u Hilfe!

AlterHacker
25.03.2009, 20:38
vor return 0; musst du am besten étwas schreiben, damit die Konsole offen bleibt.

Wahlweise ein system("PAUSE");
oder eine cin.get(); oder wars cin.getch() oO
oder halt scanf("%d", new int);
oder Sleep(10000); //windows.h includieren, cmd bleibt für 10 sek offen
oder oder oder

am besten einfach system("PAUSE"); ;-)

dokdobler
25.03.2009, 20:42
Huu endlich hat es das mal geladen^^

Er rechnet ja, nur schließt er das Programm soschnell dass du die Rechenergebnisse nicht siehst...

Hier die Lösung:

1) bei der Include haust du diese Zeile rein

#include "conio.h"
2) Vor dem return 0:

getch();

Getch(); Verhindert, dass sich das Programm gleich schließt. Sobald du einen weiteren Tastendruck tätigst, ist das Programm weg ;)

Greets

hydRa
25.03.2009, 20:49
thx... hat geklappt!

sp1nny
25.03.2009, 21:08
Oder man lässt die conio.h raus und benutzt cin.get() aus iostream.

Z o D
25.03.2009, 21:54
das gleiche problem war auch mein erstes problem in c++ ;P

Cr4ckEye
25.03.2009, 22:10
oder man öffnet ein konsolenprogramm in der konsole ;)

blackberry
25.03.2009, 22:21
Leute - wie oft gab es diese Frage hier schon?

zappaa
26.03.2009, 03:04
system ("pause"); ist zu windows spezifisch. ich würde eher 'getchar();' empfehlen. allerdings nicht vergessen, '#include <conio.h>' einzubinden.

blackberry
26.03.2009, 20:02
@zappaa
conio.h ist ebenso Windowsspezifisch.
Wenn man so will noch viel spezifischer: conio.h existiert bei UNIX-Systemen nicht (zumindest ist mir keins bekannt, welches einen solchen Header bereitstellt).
system() auf stdlib.h ist jedoch in jeder Standart-C-Bibliothek vorhanden (zumindest schreibt der Standart dies vor) und somit ist lediglich der PAUSE-Befehl Windowsspezifisch.
Sprich: system("PAUSE") compiliert auf beiden Systemen, getchar() nicht!

@hydRa
Dev-C++ ist kein Compiler, sondern ein IDE!
Dev-C++ benutzt als Compiler standartmäßig MinGW32.


mfG. BlackBerry

-[RiDER]-
27.03.2009, 15:56
Sprich: system("PAUSE") compiliert auf beiden Systemen, getchar() nicht

Das waere aber schade, denn ISO/IEC 9899:1990 schreibt eigentlich vor, dass jeder Compiler diese Funktion anbieten muss: 7.19.7.6 The getchar function

Synopsis
#include <stdio.h>
int getchar(void);

Description
The getchar function is equivalent to getc with the argument stdin.

Returns
The getchar function returns the next character from the input stream pointed to by
stdin. If the stream is at end-of-file, the end-of-file indicator for the stream is set and
getchar returns EOF. If a read error occurs, the error indicator for the stream is set and
getchar returns EOF.

GreetZ RiDER :D

blackberry
27.03.2009, 16:48
zappa sagte der Header conio.h dürfe für diese Funktion nicht vergessen werden.
Also bin ich von der Funktion getch() ausgegangen, welche sich in diesem Header befindet (welche er wohl auch gemeint hat).

Trotzdem hast du natürlich recht mit getchar - soviel nur zu meiner Rechtfertigung ;)
Sorry für den kleinen Rechtschreibfehler! - Danke für die Korrektur :)


mfG. BlackBerry

Alexisonfire93
28.03.2009, 17:36
Dev-C++ ist kein Compiler, sondern ein IDE!
Dev-C++ benutzt als Compiler standartmäßig MinGW32