Taschenrechner
-
Code-Hacker schrieb:
Was bringt die config.h???
Code-HackerNaja in diesem Fall sicher nicht viel. Da stehen OS-abhängige defines drin.
Sie wird in der Regel vom configure script generiert und ist eine große Hilfe wenn du dein Programm portabel halten willst. Ist son unix ding*gg
KDevelop erstellt automatisch entsprechende scripts u.a. auch ein(mehrere) makefile(s) das zur Compilierung deines Projekts verwendet wird
-
Hi,
es läuft leider immer noch nicht richtig,
ich bekomme weder eine Fehlermeldung, noch eine Warnung.
Könnte es bitte jemand der Kdevelop 2,1 besitzt es testen.
Ich bekomme vor der eingabe der zweiten zahl, also vor dem
3en cin, gleich als ergebniss eine null ausgegeben.
MfG Max
-
du hast auch das Problem, dass du den Tastatur Buffer nicht richtig ausliest. Aber der Thread ist nicht Linux spezifisch. Deswegen ab in das C++ Forum
-
Hmm,
ich hab vorhin hier irgendwas von eingabepuffer lehren gelesen,
da es auf einem anderen compiler läuft und bei mir nicht könnte
es ja das sein oder?Naja, ich versteh halt noch nicht viel von
c++.Wenn das stimmt was ich denke ging das irgendwie so:cin.sync //oder cin.sync()
Naja wird es wohl nicht sein,
ich probiers mal aus.Vielen dank für die vielen antworten,
ich freu mich jetzt einmal schon über die
zukünftigen.cu Max
-
Jo,
wäre cool wenn mir jemand helfen könnte,
es läuft also immer noch nicht aber der code muss
ja eigentlich stimmen, was muss ich tun?Vielen dank im vorraus
Max
-
#ifdef HAVE_CONFIG_H #include <config.h> #endif //wichtige Header Dateien #include <iostream.h> #include <stdlib.h> int main(){ //Variablen erzeugen float erste_zahl; float zweite_zahl; char rechenzeichen; float ergebniss; //eingabe der zahlen cin >> erste_zahl; cin.sync(); cin.clear(); cin >> rechenzeichen; cin.sync(); cin.clear(); cin >> zweite_zahl; cin.sync(); cin.clear(); //Auslesung des Rechenzeichens und die daraus resultierende berechnung if (rechenzeichen == '+') ergebniss = erste_zahl + zweite_zahl; else if (rechenzeichen == '-') ergebniss = erste_zahl - zweite_zahl; else if (rechenzeichen == '*') ergebniss = erste_zahl * zweite_zahl; else if (rechenzeichen == '/') ergebniss = erste_zahl / zweite_zahl; //Ausgabe des ergebnisses cout << ergebniss; return 0; }
Probier das mal, mehr fällt mir auch nicht ein.
Code-Hacker
-
Jo,
ersteinmal vielen dank wegen der zahlreichen antworten,
besonders an Code-Hacker.Leider geht das programm
trotz der zahlreichen verränderungen immer noch nicht,
also man kann bekommt als ergebniss eine 0 bevor man
die dritte zahl eingeben kann,also beim dritten cin.
Naja vielleicht findet ja noch jemand den Fehler,
wäre nett.cu Max
-
Jo,
ist nun auch nicht so schlimm,
programmier ich halt wieder unter windoof.
Was solls?, falls jemand doch ne lösung hat
würd ich mich darüber freuen.Nochmals vielen dank und cu
Max
-
wie wär's mit cin.ignore() od. cin.ignore(cin.rdbuf()->in_avail()) vor dem einlesen?
#include <iostream> /* die neuen header sind ohne .h */ #include <cstdlib> /* die alten c-header ohne .h und mit c vorne dran */ using namespace std; //alles in den headern steht im namensraum std //der erst aufgemacht werden muss. int main(){ //Variablen erzeugen ist am Anfang schlecht. Erzeug sie, wenn du sie //brauchst. //eingabe der zahlen double erste_zahl; //einfach gleich double. cin >> erste_zahl; char rechenzeichen; cin >> rechenzeichen; double zweite_zahl; cin >> zweite_zahl; //Auslesung des Rechenzeichens und die daraus resultierende berechnung //vielleicht wäre dafür ne extra funktion schon schön :) double ergebnis; if (rechenzeichen == '+') { //gruppieren und einrücken sind ein muss; ergebnis = erste_zahl + zweite_zahl; //zumindest am anfang. } else if (rechenzeichen == '-') { ergebnis = erste_zahl - zweite_zahl; } else if (rechenzeichen == '*') { ergebnis = erste_zahl * zweite_zahl; } else if (rechenzeichen == '/') { ergebnis = erste_zahl / zweite_zahl; } //Ausgabe des ergebnisses cout << ergebnis << '\n'; //'\n' mit ausgeben ist nett ;) return 0; //return 0; ist überflüssig. }
funktioniert bei mir (gcc 3.2) prima...
statt den 3zeilen einlesen ginge auch:
cin >> erste_zahl >> rechenzeichen >> zweite_zahl;
gib ein 3 + 7 (ohne enter dazwischen) und drück am ende enter.
wenn du's so machst, dann lass auf jedenfall das sync/ignore weg.ps ergebnis schreibt man mit einem s
-
Jo,
vielen dankfür deine antwort ich werd´s
gleich ausprobieren.Die vielen Fehler
kommen dadurch das ich ganz neu in c++ bin.Da meine Hilfe unter windows(Visual c++ autoran)und
linux(Kdevelop 2,1)nicht geht muss ich alles aus
Büchern und tuts lernen, kennt jemand eine gute
Befehlsliste zu Kdevelop oder Visual c++ falls es
soetwas geben sollte?Vielen dank im vorraus.(und nachherraus)
cu Max