Problem mit Konsolenanwendung
- 
					
					
					
					
 Ja hab Deinen ausprobiert. Genau das gleiche Problem. 
 Wenn ich die while Schleife zu test zwecken in eineif (1){...}ändere geht es. Wie gesaht das Programm läuft auch braucht aber eben ca. 30 Sekunden bis es läuft  Mittleerweile ist es etwas größer geworden ... #include <iostream> using namespace std; void rechne(int, int, int[]); void zeige (int, int, int[]); // rechne führt die Rechenoperationen durch um die Zahl umzuwandeln void rechne(int zahl, int basiszahl, int reste[]) { for (int i = 0; i < 16; i++) { reste[i] = zahl % basiszahl; zahl = zahl / basiszahl; } } // zeige stellt das Ergebniss dar void zeige(int zahl, int basiszahl, int reste[]) { cout << "Die Umrechnung der Zahl " << zahl << " in das Zahlensystem mit der Basiszahl " << basiszahl << '\n'; for (int i = 0; i < 16; i++) { cout << reste[15-i]; if ((i+1) % 4 == 0) { cout << " "; } } } int main() { // Variablen int zahl = 0, basiszahl = 0; // Arrays int reste [16] = {0}; // Abfrage der Zahl die Umgewandelt werden soll while (zahl == 0) { cout << "Geben Sie den Wert ein, der umgerechnet werden soll (max. 65.535): "; cin >> zahl; // Exeption wenn cin die Zahl nicht lesen kann if (cin.fail() == true) { cout << "Fehler konnte Zahl nicht lesen! Bitte versuchen Sie es erneut!"; cin.clear(); cin.ignore(BUFSIZ, '\n'); } // Exeption wenn die Zahl größer ist als 65.535 if (zahl > 65535) { cout << "Es tut mir leid, aber ich kann nur Zahlen bis maximal (65.535) umwandeln." << '\n'; zahl = 0; } } while (basiszahl == 0) { cout << "Geben Sie die Basiszahl des Zahlensystems an in welches die Umrechnung erfolgen soll (2-9):"; cin >> basiszahl; // Exeption wenn cin die Zahl nicht lesen kann if (cin.fail() == true) { cout << "Fehler konnte Zahl nicht lesen! Bitte versuchen Sie es erneut!"; cin.clear(); cin.ignore(BUFSIZ, '\n'); } // Exeption wenn die Basiszahl kleiner als 2 oder größer als 9 ist if (basiszahl > 9 || basiszahl < 2) { cout << "Es tut mir leid, aber ich kann nur in Zahlensystem mit der Basiszahl 2-9 wandeln"; basiszahl = 0; } } rechne(zahl, basiszahl, reste); zeige(zahl, basiszahl,reste); return 0; }Läuft es bei Dir richtig? 
 
- 
					
					
					
					
 Niie schrieb: Läuft es bei Dir richtig? Ja. Aber: Wie kommst du auf cin.ignore(BUFSIZ, '\n');? Was passiert mit Eingaben wie 66000fooobzw.12bar?
 
- 
					
					
					
					
 Bei Eingaben wie 12bar erscheint zwar eine Fehlermeldung die so nicht sein sollte aber das Programm läuft zumindest durch und rechnet auch korrekt um. Ich will mit cin.ignore(BUFSIZ, '\n');alle Zeichen aus dem Puffer löschen dabei ist BUFSIZ ein vordefinierter wert in höhe des Puffers. 
 
- 
					
					
					
					
 
 
- 
					
					
					
					
 mein compiler sagt auch das BUFSIZ nicht deklariert ist. Ich glaube du müsstest erstmal sowas machen #define BUFSIZ 256oder in deine zeilen 53 und 74 direkt cin.ignore(256, '\n');schreiben. Bei mir hat er jetzt keine lange ladezeit. 
 
- 
					
					
					
					
 Photon schrieb: mein compiler sagt auch das BUFSIZ nicht deklariert ist. Ich glaube du müsstest erstmal sowas machen [...] 
 
- 
					
					
					
					
 ok ist es dann weil kein setbuf verwendet wurde? weil mein compiler will das so wie es ist nicht ausführen. Aber ich hab auch nicht so viel ahnung. 
 
- 
					
					
					
					
 Photon schrieb: ok ist es dann weil kein setbuf verwendet wurde? Ich glaub' nicht, daß C-I/O-Streams ( FILE *) in dieser Hinsicht viel mit C++-IO-Streams (std::istream,std::ostream) zu tun haben.Photon schrieb: [...] weil mein compiler will das so wie es ist nicht ausführen. "So wie es ist" kann ich in meiner Glaskugel nicht erkennen. Swordfish schrieb: Du willst #include <limits> #include <iostreams> // ... std::cin.clear(); std::cin.ignore( std::numeric_limits< std::streamsize >::max(), '\n'); // ...
 
- 
					
					
					
					
 Swordfish schrieb: Schau' mal Kannst'd' 'mal mit dei'nen Deppenapostrophen aufhör'n? Das' is' wirklich' un'erträglich! 
 Lass die einfach weg.
 ↑ Es heisst z.B. lass und nicht lass', wie auch is (für ugs. ist) und nicht is'.
 
- 
					
					
					
					
 fischkopf schrieb: Swordfish schrieb: Schau' mal Kannst'd' 'mal mit dei'nen Deppenapostrophen aufhör'n? Das' is' wirklich' un'erträglich! 
 Lass die einfach weg.
 ↑ Es heisst z.B. lass und nicht lass', wie auch is (für ugs. ist) und nicht is'.Im Falle von "Schau mal!" hast du tatsächlich Recht. fischkopf schrieb: Kannst'd' Bei der Auslassung von ganzen Wörtern (du) braucht's kein Apostroph. fischkopf schrieb: 'mal Auslassung von "ein" am Wortbeginn. Ok. fischkopf schrieb: [...] dei'nen Keine Auslassung  Deppenapostroph Deppenapostrophfischkopf schrieb: aufhör'n Auslassung des e. fischkopf schrieb: Das' Keine Auslassung  Deppenapostroph Deppenapostrophfischkopf schrieb: is' Auslassung des t. fischkopf schrieb: wirklich' Keine Auslassung  Deppenapostroph Deppenapostrophfischkopf schrieb: un'erträglich Keine Auslassung  Deppenapostroph Deppenapostrophfischkopf schrieb: Es heisst z.B. lass und nicht lass' [...] Wo hab' ich jemals "lass'" geschrieben?? 
 
- 
					
					
					
					
 Swordfish schrieb: fischkopf schrieb: Es heisst z.B. lass und nicht lass' [...] Wo hab' ich jemals "lass'" geschrieben?? "lass'" ist genauso dämlich wie die Forme, die du wirklich verwendet hast. Kleine Liste der von dir in letzter Zeit gebrauchten Apostrophen: 
 'mal
 hab'
 glaub'
 schau'
 dacht'
 such'
 könn't
 zeig'
 schau'
 seh'
 hätt'
 gern'
 'ne
 für's
 'raussuchen
 soll's
 hab'
 mach'ma
 d'raus
 wär's
 d'rumherum
 hab'
 wie's
 graut's
 geh'
 würd'
 wär's
 'raus
 gäb'sJedes einzelne ist entweder falsch oder unüblich. Bei mach'ma hiesse richtig mach ma', ansonsten wäre nie ein Apostroph angebracht. Grundsätzlich gilt: http://www.canoo.net/services/GermanSpelling/Regeln/Interpunktion/Apostroph.html Man schreibt im Allgemeinen keinen Apostroph für das weggefallen Schluss-e in häufig gebrauchten Varianten von auf e endenden Wörtern Bei verkürzten Formen von mit herauf, heraus, herein, herüber, herunter usw. gebildeten Wörtern schreibt man im Allgemeinen keinen Apostroph Die amtlichen Regeln sind weniger explizit, sie listen nur Fälle auf, bei denen Apostrophe gebraucht werden. (2) Wörter mit Auslassungen, die ohne Kennzeichnung schwer lesbar 
 oder missverständlich sindKeine deiner Nutzungen erhält ohne Apostroph eine schwer verständliche Bedeutung. Man kann den Apostroph setzen, wenn Wörter gesprochener Sprache 
 mit Auslassungen bei schriftlicher Wiedergabe undurchsichtig sind.graut's => Heute als geflügeltes Wort auch ohne Apostroph verständlich: http://de.wikipedia.org/wiki/Liste_gefl%C3%BCgelter_Worte/H#Heinrich.21_Mir_grauts_vor_dir. 
 d'rumherum => drumherum steht sogar so im Duden
 mach'ma => ja, machma ist komisch. Aber der Apostroph steht am falschen Ort.Der Apostroph steht nicht dann, wenn man irgendwo etwas weggelassen haben könnte, sondern wenn es ihn wirklich braucht. 
 
