Konsolenanwendung???
-
Hallo
ICh beginne grade mit C++ zu lernen und wollte mal ne Konsolenanwendung erstellen doch womit denn? Bei mir gibt es CLR Konsolenanwendung und Win32 Konsolenanwendung. Wo ist denn da der Unterschied. Programmierumgebung ist VS2005
-
Nimm eine Win32 Konsolenanwendung, die basiert auf C/C++ ("CLR Konsolenanwendung" klingt eher nach C++/CLR aka managed C++).
-
ah vielen dank.
könntest du mir auch gleich erklären wie ich es schaffe dass das fenster offen bleibt? hab grade ne aufgabe von meinem Buch gemacht:#include "stdafx.h" #include <iostream> #include <stdlib.h> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { long Eingabe=0; int zufall=0; cout<< "Geben Sie eine ganze Zahl ein"<< endl; cin>> Eingabe; srand(Eingabe); for (int i=0; i<=20; i++) { zufall=rand() %100 +1; cout << zufall; } cin.get(); return 0; }mit cin.get gehts bei mir nicht
-
Wenn Du das VS2005 benutzt, starte das Programm - solange Du nicht debuggen musst - einfach mit "Starten ohne Debuggen" (oder klicke den grünen Pfeil, der nicht gefüllt ist), dann bleibt das Fenster automatisch geöffnet.
-
cin.clear();
cin.ignore(cin.rdbuf()->in_avail());
cin.get();
-
Oder mit getch();
Dazu musst du dann conio.h includieren.
-
oder du benutz den systembefehl pause mit system("PAUSE"); Das klappt aber nur bei der Windowskonsole.
-
Die ideallösung ist immer noch das Programm von der cmd (besser noch der MSYS) aus zu starten

-
danke für eure antworten es geht jetzt.
jetzt hab ich noch ein problem mit dem zufallsgenerator: was kann ich tun ausserjedesmal ne andere zahl einzugeben, dass immer andere zufallszahlen kommen? wenn ich zb 2mal hintereinander 10 eingebe, kommen immer die gleichen zufallszahlen. kann man das irgendwie umgehen?
-
Der Zufallsgenerator, den rand() verwendet, ist deterministisch - aus dem gleichen Startwert folgt auch die gleiche Zufallsfolge. Darum verwendet man normalerweise einen mehr oder weniger willkürlich gewählten Wert als Startpunkt (für den Anfang ist der Rückgabewert von time() recht brauchbar).
-
#include <ctime> #include <cstdlib> ... std::srand(std::time(0)); ... std::rand(); ...
-
wie funktioniert das mit time denn? kenn mich damit nich aus
edit: ups hab wohl nicht aktualisiert
thxEdit 2:
Kann mir jemand sagen was hier das Problem ist?:#include "stdafx.h" #include <iostream> #include <cstdlib> #include <ctime> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { int fehler=0; int zufall=0; int raten=0; bool erraten=false; cout <<"Erraten Sie die zufällige Zahl zwischen 1 und 15. Sie haben 3 Versuche" <<endl; srand(time(0)); zufall= rand()% 15 + 1; while (!erraten || fehler<=3) { cin >> raten; if raten < zufall { cout << "Die Zahl ist größer"; ++fehler; } else { if raten > zufall { cout << "Die Zahl ist kleiner"; ++fehler; } else { cout << "Die zahl ist richtig. DIe Zahl lautet: " << zufall; erraten=true; } } } cin.clear(); cin.ignore(cin.rdbuf()->in_avail()); cin.get(); return 0; }es kommen immer diese völlig unsinnigen fehler:
Warnung 1 warning C4244: 'Argument': Konvertierung von 'time_t' in 'unsigned int', möglicher Datenverlust Fehler 2 error C2061: Syntaxfehler: Bezeichner 'raten' Fehler 3 error C2143: Syntaxfehler: Es fehlt ';' vor '{' Fehler 4 error C2181: Ungültiges 'else' ohne zugehöriges 'if' Fehler 5 error C2061: Syntaxfehler: Bezeichner 'raten' Fehler 6 error C2143: Syntaxfehler: Es fehlt ';' vor '{' Fehler 7 error C2181: Ungültiges 'else' ohne zugehöriges 'if'seit wann gehört ein ; vor eine {?? und die 2 else haben ja auch ifs
-
Es gehören keine ; vor {, aber es gehören () um die Bedingungen

Nach if muss immer ein geklammerter Ausdruck folgen - also etwa if (!erraten || ...) {
-
argh so ein mist jetzt gehts. allerdings mit dem time() zufallsgenerator kommt bei mir jedes mal die Zahl 6.woran könnte das liegen?
-
Thundereye schrieb:
argh so ein mist jetzt gehts. allerdings mit dem time() zufallsgenerator kommt bei mir jedes mal die Zahl 6.woran könnte das liegen?
Du initialisierst srand immer mit derselben Zahl. Ich zitiere:
CStoll schrieb:
Der Zufallsgenerator, den rand() verwendet, ist deterministisch - aus dem gleichen Startwert folgt auch die gleiche Zufallsfolge. Darum verwendet man normalerweise einen mehr oder weniger willkürlich gewählten Wert als Startpunkt (für den Anfang ist der Rückgabewert von time() recht brauchbar).
Versuchs mal so:
#include <time.h> time_t t; srand( ( unsigned )time( &t ) );
-
#include <ctime> //TIME.H ist C std::time_t t; //time_t liegt im Namesraum std:: std::srand( static_cast<unsigned>(std::time( &t )) );//(unsigned) ist ein C-Cast in C++ heißt das static_cast<unsigned>Das übergeben des time_t ändert IMHO überhaupt noichts an dem Wirken der Funktion
The function time() returns the current time, or -1 if there is an error. If the argument 'time' is given, then the current time is stored in 'time'.
#include <iostream> #include <ctime> int main() { std::cout <<"Erraten Sie die zufällige Zahl zwischen 1 und 15. Sie haben 3 Versuche" << std::endl; std::srand( static_cast<unsigned>( std::time(0) ) ); int zufall( std::rand()% 15 + 1 ); bool erraten( false); unsigned fehler( 0 ); while (!erraten || fehler<=3) { int raten; std::cin >> raten; if (raten < zufall) { std::cout << "Die Zahl ist größer"; ++fehler; } else { if (raten > zufall) { std::cout << "Die Zahl ist kleiner"; ++fehler; } else { std::cout << "Die zahl ist richtig. DIe Zahl lautet: " << zufall; erraten=true; } } } std::cin.clear(); std::cin.ignore(std::cin.rdbuf()->in_avail()); std::cin.get(); }Gibt bei mir verschiedene Zufallszahlen ...
-
#include <ctime> //TIME.H ist C std::time_t t; //time_t liegt im Namesraum std:: std::srand( static_cast<unsigned>(std::time( &t )) );//(unsigned) ist ein C-Cast in C++ heißt das static_cast<unsigned>Ok, wenn ich das aber jetzt bei mir so benutze, dann bekomm ich mehrere Fehler. Unter anderem:
error C2039: 'time_t' : is not a member of 'std'
...
error C2653: 'std' : is not a class or namespace name
...
-
include auf <ctime> geändert?
Welcher Compiler?
-
darthdespotism schrieb:
include auf <ctime> geändert?
Welcher Compiler?
Ja.
Visual C++ 6.0.
-
aus dem was der VC6 dir sagt kannst du wenig bis nichts über gültiges C++ schließen.
Warum verwenden so viele Menschen noch ohne Zwang diesen Uralt-Compiler?
