Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » problem: Abbruch

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 < [ 3 ]
010
13.07.2008, 11:49 Uhr
mischa
Fragender


Hallo,
WiredCoder deine Erklärung über return ist leider nicht korrekt.
return 0; gibt wie der Name schon verrät einen Wert und zwar 0 an das Betriebssystem oder an den der dieses Programm aufgerufen hat. Null bedeutet so viel wie, ohne Fehler beendet.
cin.get() aber wartet einfach nach einer Eingabe aus dem Eingabestrom. Die zwei Befehle sind von Grund auf verschieden!
Die zwei cin.get() hintereinander funktionieren weil nach der ersten Eingabe bereits etwas im Eingabestrom steht und das erste cin.get() es mitkriegt und einfach das Programm weiter laufen lässt. Danach ist der Eingabestrom wieder lehr und das zweite cin.get() lässt das Programm dann warten.
Aber der Einwand mit Google ist korrekt.
--
Latein Unterricht ist die spätere Rache der Römer an den Germanen.

Dieser Post wurde am 13.07.2008 um 11:57 Uhr von mischa editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
13.07.2008, 12:34 Uhr
xXx
Devil


Nja warum std::cin.get() und nicht std::cin.ignore() genutzt wird, ist nicht ersichtlich.

Und return-Erklärung von WiredCoder war purer Schwachsin!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
13.07.2008, 14:40 Uhr
jjo



achso danke jetzt kann ich weiter lernen
(vieleicht werde ich in 2 Jahren ja schon ein großer Programmierer sein
--
Die Polizei stopt gauner.Wer stopt die Polizei?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
13.07.2008, 18:34 Uhr
Lensflare



Ich fühle mich nach meinem post Nummer 001 irgendwie ignoriert
--
Wenn das Gehirn so einfach wäre, dass wir es verstehen könnten, wären wir so einfach, dass wir es nicht verstehen könnten.
(Emerson Pugh Trost)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
21.07.2008, 11:30 Uhr
Run32.dll



So sollte es auch Funtionieren...


C++:
#include <iostream>
using namespace std;
int Zahl;
int main()
{
cout << "Gib eine Zahl ein: ";
cin >> Zahl;
cout << "\nDeine Zahl ist: " << Zahl << endl;
system ("PAUSE");
return 0;
}

 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
21.07.2008, 12:24 Uhr
xXx
Devil


Jo, nur warum Zahl im global-scope? warum std::system("pause") (wo hast du dafür überhaupt <cstdlib> eingebunden?), wenn dafür extra ne cmd aufgerufen werden muss, dann pause ausgeführt werden muss, dann die cmd wieder geschlossen werden muss und dann erst dein programm sich beenden darf? Wofür return 0, wenn man esnicht braucht? Warum so miserabel einrücken?


C++:
#include <iostream>

int main()
{
    std::cout << "Zahl: ";
    int number(0);
    if (std::cin >> number) std::clog << "Ihre Zahl ist: " << number << std::endl;
    std::cin.ignore();
}
wobei das auch Probleme macht, wenn noch was im stream steht.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
21.07.2008, 13:43 Uhr
kronos
Quotenfisch
(Operator)



Zitat von xXx:
Wofür return 0, wenn man esnicht braucht?

Werft den Purschen zu Poden!
--
main($)??<-$<='?'>>2?main($-!!putchar(
(("$;99M?GD??(??/x0d??/a:???;a"+'?'/4)
??($??)+'?'/3-2-1+$%2)??''?')):'?';??>
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
21.07.2008, 16:44 Uhr
0xdeadbeef
Gott
(Operator)


Ich persönlich lese Benutzereingaben von der Konsole zeilenweise ein und parse nachher mit stringstreams - dann habe ich Probleme mit Rückständen im Stream:

C++:
#include <iostream>
#include <sstream>
#include <string>

// ...

int number;
std::istringstream parse;
std::string line;

std::getline(std::cin, line);
parse.str(line);
parse >> number;


Ich verpacke das typischerweise in einer Funktionstemplate und schreibe nachher in etwa

C++:
int number = read_type<int>("Zahl eingeben: ");



Wer das nicht mag (warum auch immer),

C++:
#include <iostream>
#include <limits>

// ...

std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');


ignoriert Zeichen bis zum Ende der Zeile.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
018
21.07.2008, 17:43 Uhr
xXx
Devil


Joa nur wenn nix im Stream ist, ließt er dann einmal zu viel ein, zumindest bei mir.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
019
21.07.2008, 18:27 Uhr
0xdeadbeef
Gott
(Operator)


Naja, bei zeilenweiser Eingabe wird ja zumindest das Newline-Zeichen immer im Stream bleiben. Es sei denn, du benutzt getline, und dann lässt du natürlich auch das ignore sein.
--
Einfachheit ist Voraussetzung für Zuverlässigkeit.
-- Edsger Wybe Dijkstra
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 < [ 3 ]     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: