Anfänger sucht hilfe

07/15/2013 21:55 Schlüsselbein#16
Dann mal los:
1. Wozu cstdlib? return 0; bzw in deinem Fall gar kein return reicht vollkommen.
2. using namespace std; ist häßlich und böse. Begründungen dazu stehen im Forum.
3. Gewöhn dir an, Variablen direkt zu initialisieren.
4. Überprüfe ob, ob beim Einlesen kein Fehler aufgetreten ist.
5. system("PAUSE") ist Quark - für Begründung wie auch bei #2 vorgehen.

Die Erklärung für die Parameter der Main-Routine lässt sich ebenfalls über eine Suchmaschine finden.

Hier mal ein ganz primitiver Vorschlag:
Code:
#include <iostream>

int main()
{
	int num1 = 0;
	int num2 = 0;
	
	std::cout << "Number 1: ";
	if(!(std::cin >> num1))
	{
		return 1;
	}

	std::cout << "Number 2: ";
	if(!(std::cin >> num2))
	{
		return 1;
	}

	int result = num1 + num2;
	std::cout << "Result: " << result << std::endl;

	return 0;
}
07/15/2013 22:58 ExHack#17
oder so :
Code:
 #include <iostream>

 int main()
 {
	int a,b;
	
        std::cout<<"enter 2 numbers ( q to quit) : ";
	
        while(std::cin>>a>>b)
        {
        std::cout<<"a= "<<a<<", b= "<<b<<std::endl;
        std::cout<<a<<" + "<<b<<"= "<<a+b<<std::endl;
        std::cout<<"next 2 numbers ( q to quit) : ";
        }
    	
        return 0;
 }
07/16/2013 07:15 Delinquenz#18
Quote:
oder so :
Nur mit dem Unterschied, dass deine Formatierung bad as fuck ist und ich sowas niemals einem Anfänger zeigen würde.

Achja, für den Fall, dass du unter Windows programmierst und sich die Konsole immer schließt, pack einfach ein std::cin.get(); vor dem letzten return rein. Das benötigt natürlich den <iostream>-Include.

PS: Wenn du ernsthaft Spiele programmieren möchtest, kommst du afaik nicht um C++ rum. Klar, C wäre auch eine Alternative, aber ich würde die Objektorientierung gerade bei so etwas komplexem nicht missen.
07/16/2013 18:14 Bladel#19
Habe beschlossen mir ein C++ Buch zu bestellen jetzt wollte ich lieber noch mal nach fragen bevor ich ein Buch kaufe das total schlecht ist.
Also welches sollte ich nehmen?
Danke schon mal für die ganze Unterstützung.
07/16/2013 19:12 ExHack#20
Quote:
Originally Posted by Bladel View Post
Habe beschlossen mir ein C++ Buch zu bestellen jetzt wollte ich lieber noch mal nach fragen bevor ich ein Buch kaufe das total schlecht ist.
Also welches sollte ich nehmen?
Danke schon mal für die ganze Unterstützung.
1:[Only registered and activated users can see links. Click Here To Register...] oder
2:[Only registered and activated users can see links. Click Here To Register...]
07/16/2013 19:52 Bladel#21
Ich weiß nicht ob meine Englisch Kenntnisse dafür gut genug sind.
Andere Vorschläge?
07/16/2013 20:02 snow#22
Die C++ Programmiersprache oder Einführung in die Programmierung mit C++. Der C++ Primer ist allerdings gut verständlich und lehrt gleich mit dem C++11 Standard.
Die Frage nach einem guten Buch gab es hier schon öfter, wenn du die Suche nutzt, wirst du sicher ein paar Threads finden, in denen erläutert wird, warum Buch X oder Y geeignet / ungeeignet sind.
07/26/2013 22:32 Bladel#23
Hallo,
habe mir jetzt das Buch bestellt.
Aber ich habe versucht ein Teil eines Strategie Spiels zu coden.
Doch Irgendwie kriege ich immer Fehlermeldungen.
Google hat auch nichts ausgespuckt :(

Hier der Code:

Code:
#include <iostream>

int main()

{
	int iGeld=40;
	int iErgebnis;
	int iPreis=10;
	bool bja=true;

	iErgebnis=iGeld / iPreis;
	std::cout <<"Sie können " << iErgebnis <<" Truppen erstellen" <<std::endl;
	std::cout <<"Wollen sie die Truppen erstellen ?" <<std::endl;
	std::cin >> bja;


	if (true) {				

		std::cout << "Es wurden erfolgreich " << iErgebnis << "Truppen erstellt" <<std::endl;
		getchar();
	}

	else	{	

		std::cout << "Dann nicht"std::endl;
	}
Die Fehlermeldung:

Code:
1>c:\users\pascal\documents\visual studio 2010\projects\game\game\test.cpp(27): fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer "{" in "c:\users\pascal\documents\visual studio 2010\projects\game\game\test.cpp(5)" gefunden wurde
Ich hoffe ihr könnt mir helfen
07/26/2013 22:50 Excepti0n#24
Quote:
Originally Posted by Bladel View Post
Hallo,
habe mir jetzt das Buch bestellt.
Aber ich habe versucht ein Teil eines Strategie Spiels zu coden.
Doch Irgendwie kriege ich immer Fehlermeldungen.
Google hat auch nichts ausgespuckt :(

Hier der Code:

Code:
#include <iostream>

int main()

{
	int iGeld=40;
	int iErgebnis;
	int iPreis=10;
	bool bja=true;

	iErgebnis=iGeld / iPreis;
	std::cout <<"Sie können " << iErgebnis <<" Truppen erstellen" <<std::endl;
	std::cout <<"Wollen sie die Truppen erstellen ?" <<std::endl;
	std::cin >> bja;


	if (true) {				

		std::cout << "Es wurden erfolgreich " << iErgebnis << "Truppen erstellt" <<std::endl;
		getchar();
	}

	else	{	

		std::cout << "Dann nicht"std::endl;
	}
Die Fehlermeldung:

Code:
1>c:\users\pascal\documents\visual studio 2010\projects\game\game\test.cpp(27): fatal error C1075: Dateiende erreicht, bevor das zugehörige Element für das linke Element Klammer "{" in "c:\users\pascal\documents\visual studio 2010\projects\game\game\test.cpp(5)" gefunden wurde
Ich hoffe ihr könnt mir helfen
Dir fehlt die } Klammer am Ende. :D
07/26/2013 23:45 Tasiro#25
"if (true) {"? Sicher? Wozu verwendest du dann bja? (Und müsste es nicht "fJa" heißen, wenn überhaupt?)
07/27/2013 01:51 Nightblizard#26
Ungarische Notation in C++ ist Schwachsinn. Ich zitiere da immer wieder gerne folgendes Beispiel:

Code:
int iVar;                  // int
int* piVar;                // Zeiger auf int
int* apiVar[12];           // Array von Zeigern auf int?
int* a12piVar[12];         // Man sollte die Dimension auch am Typ erkennen.
 
class CMyClass {};         // Klasse
struct SMyStruct {};       // Oder auch C? Semantisch werden class und struct oft unterschiedlich
                           // angewandt, deshalb ein eigenes S gerechtfertigt? Und union?
 
const CMyClass cVar;       // Wie soll const angezeigt werden? Kleines c?
const CMyClass& crefVar;   // Const-Referenz? Und woher weiss man, dass es eine
                           // Klasseninstanz ist? crefCVar?
const CMyClass* const cpcCVar; // Const-Zeiger auf const MyClass - wie?
 
char strVar[41];           // C-String, str liegt nahe. Oder Array deutlich machen?
char* strVar;              // Ebenfalls C-String, aber auch Zeiger auf char.
std::string strVar;        // Klasse. Sollte besser C sein.
std::vector<std::string> astrVar; // a für Array, ähnlich wie std::vector.
std::map<std::string> mstrVar;    // Map ist vom Einsatz her ziemlich anders als Vector.
                                  // Ein eigenes Präfix wäre angebracht.
 
float fVar;                // Ziemlich eindeutig, dass hier f stehen muss.
double dVar;               // d? Oder für alle Fliesskommazahlen f?
std::complex<float> cfVar; // c hat schon viele Bedeutungen. Oder einfach nur C für Klasse?
                           // Jedoch ist eine komplexe Zahl ebenso eine Zahl wie float,
                           // wieso sollte sie kein eigenes Präfix erhalten?
CMyInt iVar;               // Eigentlich Klasse - aber Verhalten genauso wie bei
                           // int, dann wäre i-Präfix gerechtfertigt, oder?
 
template <typename T, int N>
class TVector {};          // Klassentemplates mit T, oder auch C? Den Unterschied
                           // sollte man schon direkt am Bezeichner erkennen.
TVector<double, 3> Td3Var; // Wie will man zeigen, dass es sich um ein Template mit Typ
                           // double und Konstante 3 handelt? Das sollte verdeutlicht werden.
 
typedef int Ffunc(double); // F für Funktionen - was ist mit Rückgabetyp und Parameter?
typedef void (*pFv_idC_MyFunc)(int, double, CMyClass);
                           // Funktionszeiger mit allen Informationen.
typedef boost::function<int(double)> Fi_d_MyFunc;
                           // Ist schliesslich semantisch auch eine Funktion. Andererseits
                           // auch Klasse und Template - was jetzt?
struct SMyFunctor {};      // Funktionsobjekt. S? C? Ist aber recht ähnlich wie Funktion.
Quelle: [Only registered and activated users can see links. Click Here To Register...]

Gleich abgewöhnen den Mist!
07/27/2013 12:55 PenGuin :O#27
War ja klar, dass Smith das gefällt..
Ich verwende übrigens ein Mischmasch aus ungarischer Notation und normaler Variablenbenennung. Ich seh da kein Problem, jedem das Seine :)
07/27/2013 13:37 MrSm!th#28
Ungarische Notation korrekt angewandt halte ich nichtmal für so sinnlos, weder in C++ und erst recht nicht in schwach typisierten Sprachen.

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]

Nightblizards verlinkter Thread geht in dieselbe Richtung. Ein Präfix für Membervariablen ist durchaus sinnvoll, weil es etwas über die Funktion und Art der Variable sagt. Ein Präfix für ihren Datentyp jedoch nicht.

Quote:
Befürworter der Ungarischen Notation haben dieses Problem nicht, da ihr C++ stilistisch irgendwo vor 1996 stattfindet.
Finde ich herrlich und trifft auch noch so oft zu :3
Letztendlich findet man die Ungarische Notation im Microsoft-Stil häufig in schlechten C&P Hacks und in den davon abgeleiteten später eigens entwickelten Quelltexten, die der WinApi und damit C mehr ähneln als C++.