Zufallszahlen
-
random() ist 4.3 BSD. Kein ISO C oder ISO C++. Aber auch keine GNU Erweiterung
[ Dieser Beitrag wurde am 17.06.2002 um 21:03 Uhr von kingruedi editiert. ]
-
ich hatte mal 'n kleines programm geschrieben das folgendermaßen aussah:
int UNum; /* die Zahl welche eingeben wird */ int Num; /* Zahl welche erraten werden sollte */ int ctr; /* Laufvariable */ srand( ( int ) time( ( time_t * )0 ) ); Num = rand() % 11; printf( "\nSie haben jetzt 3 Versuche ..." ); for( ctr = 1; ctr <= 3; ctr++ ) { printf( "\nVersuch %d > ", ctr ); scanf( "%d", &UNum ); if( UNum == Num ) { printf( "\nRichtig! Die Zahl war \"%d\"\n\n", UNum ); exit( 0 ); } else { printf( "\nNein falsch!\n" ); } } printf( "\n\nLeider waren es schon 3 Versuche!" ); printf( "\nEs waere \"%d\" gewesen\n\n\n", Num );
lief eigentlich auch so wie es wollte. naja vielleicht hilft es dir ja weiter
mfg
-
OK danke für die ganzen Antworten.
Eine frage hab ich aber noch. Worin besteht der Unterschied zwischen prontf und cout ??? Ich hoffe diese Frage ist nicht allzu dämlich.
-
In der Kurzfassung: printf ist C, cout ist C++.
Gruß,
MTE.
-
BTW: Ist es eigentlich erlaubt, Funktionen im globalen Bereich aufzurufen? Weiß ich gar nicht .
printf/cout, vielleicht sollte noch was ziemlich allgemeins hinzugefügt werden:
printf() ist eine Funktion.
cout ist eine Instanz der Klasse "basic_ostream". Falls dir Klassen noch nichts sagen: cout ist eine Variable.MfG SideWinder
-
Kann man printf denn auch in C++ benutzen?
Bestände darin ein Vor- oder Nachteil?
-
Ja kann man. Es ist aber nicht sehr zu empfehlen. Vor allem wenn du trotzdem mit cin einliest.
Irgendeine Funktion, etc. liest dann trotzdem noch mit cout in den eigenen Puffer ein. Und es ist nie gut mit zwei verschiedenen Objekten auf ein und den selben Puffer (ConsoleInput in diesem Fall) zuzugreifen.
Ich würde immer empfehlen, dass man unter C printf() benützt und unter C++ cout.
MfG SideWinder
-
cout ist eine Instanz der Klasse "basic_ostream".
und direkter Erbe von ostream, was wiederum ein Erbe basic_ostream<char> ist (laut standard), du siehst also komplexe Beziehungen in der standard Library
BTW: Ist es eigentlich erlaubt, Funktionen im globalen Bereich aufzurufen? Weiß ich gar nicht
nein, dürfte nicht so sein! Aber ich glaube guard meinte, dass sein Source in einer Funktion ist.
-
cout ist eine Instanz der Klasse "basic_ostream".
und direkter Erbe von ostream, was wiederum ein Erbe basic_ostream<char> ist (laut standard), du siehst also komplexe Beziehungen in der standard Library
Wie bitte was? basic_ostream ist direkter Erbe von ostream? Nö.
Die Beziehung gilt eher wie folgt:
typedef ostream basic_ostream < char , std::char_traits < char > >
Die komplexe Beziehung entsteht durch das Erben von basic_ios und durch die Streampuffer-Klassen.
MfG SideWinder
-
Erben? Ist da jemand gestorben?
Was ist denn das schon wieder?
-
@Der Virendoktor:
Ein gutes Einsteigertutorial zu Klassen (+Vererbung) findest du hier: http://www-public.tu-bs.de:8080/~y0005571/spiele/cpptut/inhalt.htm
-
Lasst den guten Doktor doch erstmal klein anfangen und schickt ihn nicht als Anfgänger in Krisenregionen ;).
Also: Mach mit deinem Buch/Tutorial ganz normal weiter und ignoriere unsere besserwisserischen Kommentare ;):p:).
MfG SideWinder