Anfängerprobleme



  • Hi,

    ich bin neu hier und möchte C++ lernen. Habe mir auch schon ein Buch gekauft und zwar "C++ lernen und professionell anwenden", was hier in dem Forum auch immer wieder empfohlen wurde. Also ihr werdet bestimmt nur stöhnen über meine Probleme. Ist wahrscheinlich sehr niveaulos. 😉
    Mein Problem ist einfach, dass kaum ein Programm, was ich mit Dev c++ 4.9.9.2 oder Visual C++, was bei dem Buch dabei war, schreibe, richtig oder gar nicht funktioniert. 😮
    In dem Buch gibt es ja Übungen und Aufgabe und wenn ich den Quellcode genauso eingebe wie er da steht, funktioniert es trotzdem nicht. Wieso funktioniert der Quellcode, den ich mit Visual C++ eingegeben habe nur bei Dev und nicht bei Visual? Bei Visual wird immer 1 Fehler angezeigt, aber bei Dev geht's!?!
    Gibt es denn bei Visual C++ keine Fehleranalyse wie bei Dev?
    Irgendwie funktionieren die meisten Programme nur zur Hälfte. Bei dem Programm "Zufallszahlen", was in dem Buch auch als Beispielprogramm steht, werden einfach keine Zufallszahlen ausgegeben.
    Hier das Programm, so wie es auch im Buch steht:

    /

    / Es werden drei Zufallszahlen ausgegeben
    
    #include <iostream>  // Deklaration von cin und cout
    #include <cstdlib>   // Prototypen von srand(), rand():
                         // void srand ( unsigned int seed );
                         // int rand ( void);
    using namespace std;
    int main()
    {
    	unsigned int keim;
    	int  z1, z2, z3;
    
    	cout<<"  ---Zufallszahlen --- \n"<<endl;
    	cout<<"Initialisierung des Zufallsgenerators\n"
    		<<"Geben sie eine ganze Zahl ein: ";
    	cin >> keim;        //Eine ganze Zahl einlesen 
    
    	srand( keim);       //und damit den Zufallsgenerator initialisieren.
    
    	z1 = rand();        //Drei Zufallszahlen erzeugen.
    	z2 = rand();
        z3 = rand();
    
    	cout<<"\nDrei Zufallszahlen: "
    		<< z1 << "  " << z2 << "  " << z3 << endl;
    
    return 0;
    }
    

    Bei Visual funktioniert's nicht und Bei Dev nur halb. Bei Dev kann ich nur eine Zahl eingeben.

    Hier noch paar Beispiele:

    Bei dem Beispielprogramm mit der Klasse string wird bei Visual 1 fehler angezeigt und bei Dev: "Wie lautet ihr Name: "
    Wieso wird nicht das angezeigt wie es auch im Buch steht, obwohl es derselbe Code ist?

    // Mit Strings arbeiten.
    
    #include <iostream>    //Deklaration von cin und cout
    #include <string>      //Deklaration der Klasse string
    using namespace std;
    
    int main()
    {
    	//Vier strings definieren:
    	string prompt("Wie lautet ihr Name:  "),
    		name,                       //leer
    		linie(40, '-'),             //String mit 40 '-'
    		gesamt = "Hallo";           //auc möglich!
    
    	cout << prompt;             //Eingabe-Aufforderung
    	getline( cin, name);         //Name (eine zeile) einlesen
    
    	gesamt=gesamt + name;      //Strings verketten und zuweisen.
    
    	cout << linie << endl        //Linie und Name ausgeben
    		 << gesamt << endl;
    	cout << "Ihr Name ist"      //Länge ausgeben
    		 << name.length() << "Zeichen lang!" << endl;
    	cout << linie << endl;
    	return 0;
    }
    
    "Wie lautet ihr Name: Peter Lustig
    -----------------------------------
    Hallo Peter Lustig
    Ihr Name ist 12 Zeichen lang!
    --------------------------------
    

    Bei der Aufgabe 3 auf S. 75 habe ich genau denselben Code eingegeben, wie er in den Lösungen steht. Da ist wieder daselbe Spielchen: Bei Visual geht's nicht, wieder 1 Fehler. Bei Dev ist keine Fehlermeldung zu sehen, aber das Programm funktioniert nur zu 50%.
    Der Code:

    #include <iostream> 
    #include <string>
    using namespace std;
    
    int main()
    {
    	string meldung ("Schon wieder was dazugelernt!\n"),
    		prompt("Bitte zwei Zeilen Text eingeben:"),
    		str1, str2, summe;
    	cout << meldung << endl;    //Meldung ausgeben
    	cout << "Die Länge der Strings: " << meldung.length()
    		<< endl;
    	cout << prompt << endl;        //EIngabe-Auffoerderung 
    
    	getline ( cin, str1 );      //1. Zeile einlesen 
    	getline ( cin, str2 );      //2. Zeile einlesen 
    
    	summe = str1 + " * " + str2;   //Strings verketten, zuweisen
    
    	cout << summe << endl;       //und ausgeben
    
    	return 0;
    }
    

    Es wird nur angezeigt:
    "Schon wieder was dazugelernt!"
    "Die Länge der Strings: 30"
    "Bitte zwei Zeilen eingeben"

    Habe ich dann auch gemacht. Dann sollen die zwei Zeilen durch ein "*" verbunden und angezeigt werden, was nicht funktioniert! ⚠ 😞

    😕 😕

    Bitte nehmt diese für euch lächerlichen Probleme an und helft mir.

    Viele Grüße
    Christopher

    Edit: Codetags hinzugefügt. In Zukunft bitte selber dran denken. (evilissimo)



  • Fang erstmal klein an:
    1. Du siehst die Ergebnisse, die die Programme liefern, vermutlich schlicht und ergreifend deshalb nicht, weil sich das Fenster schließt. Um das zu umgehen starte die EXE von einer Eingabeaufforderung aus, oder wähle im Visual C++ (2005) "Starten ohne Debuggen" - oder schaue in die Konsolen-FAQ zum Thema "automatisches Schließen verhindern"

    2. Benutze zum Posten von Code bitte CPP-Tags (bitte frag jetzt nicht wie - schau Dir einfach mal die Buttons unter dem Beitragsfenster an, wenn Du Beiträge erstellst).

    3. "Wird immer 1 Fehler angezeigt" ist keine Fehlerbeschreibung - welcher Fehler wird angezeigt?



  • Hallo,

    mit der Eingabeförderung klappt es.
    Zu dem Fehler: Unten steht nur 1 Fehler, 0 Warnung(en). Ich hatte ja auch gefragt, ob Visual C++ so eine Art Fehleranalyse hat, um so den Fehler anzuzeigen. Deshalb muss ich immer den Code in Dev einfügen, weil dort der Fehler immer angezeigt wird. Aber wie schon erwähnt wurde, zeigt Dev, da wo bei Visual 1 Fehler angezeigt wird, keinen Fehler mehr und es funktioniert.

    PS: ich habe mich hier im Forum unter C++hris angemeldet, aber ich kann mich nicht einloggen und meinen Name nicht als Benutzernamen eingeben.



  • krümelwe112 schrieb:

    Zu dem Fehler: Unten steht nur 1 Fehler, 0 Warnung(en). Ich hatte ja auch gefragt, ob Visual C++ so eine Art Fehleranalyse hat, um so den Fehler anzuzeigen...

    Welches Visual C++ verwendest du (Anmerkung: in jeder Version bekommst du die vollen Fehlerinformationen)?

    In der Regel sollte es etwa so aussehen:

    ------ Erstellen gestartet: Projekt: Test0003, Konfiguration: Debug Win32 ------
    Kompilieren...
    Test0003.cpp
    d:\testprojekte\vc2005\test0003\test0003\test0003.cpp(16) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'o'
    ...
    Test0003 - 5 Fehler, 1 Warnung(en)
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    cu André



  • [] Welches Visual C++ verwendest du (Anmerkung: in jeder Version bekommst du die vollen Fehlerinformationen)?
    [
    ]

    Ich benutze Visual C++ 6, was bei dem Buch dabei war. Also mir ist nicht klar, wo ich die vollen Fehlerinformationen bekomme, kann mir das einer mal sagen? Ich muss deshalb immer zu Dev switchen.

    Ich habe ein Programm geschrieben, was eine Simulation zweier Ampeln an einer Strassenkreuzung wiedergibt. Nur funktioniert das nicht, weil ich nicht die Header-Datei "Ampel.h" habe. Wo krieg ich die her, wie kann ich die mir selber machen?

    cu



  • [] Welches Visual C++ verwendest du (Anmerkung: in jeder Version bekommst du die vollen Fehlerinformationen)?
    [
    ]

    Ich benutze Visual C++ 6, was bei dem Buch dabei war. Also mir ist nicht klar, wo ich die vollen Fehlerinformationen bekomme, kann mir das einer mal sagen? Ich muss deshalb immer zu Dev switchen.

    Ich habe ein Programm geschrieben, was eine Simulation zweier Ampeln an einer Strassenkreuzung wiedergibt. Nur funktioniert das nicht, weil ich nicht die Header-Datei "Ampel.h" habe. Wo krieg ich die her, wie kann ich die mir selber machen?

    cu



  • krümelwe112 schrieb:

    Ich benutze Visual C++ 6, was bei dem Buch dabei war. Also mir ist nicht klar, wo ich die vollen Fehlerinformationen bekomme, kann mir das einer mal sagen? Ich muss deshalb immer zu Dev switchen.

    Wenn du von der Ausgabe "1 Fehler, 0 Warnung(en)" etwas nach oben scrollst, solltest du auch sehen, WELCHE Fehler da aufgetreten sind.

    Ich habe ein Programm geschrieben, was eine Simulation zweier Ampeln an einer Strassenkreuzung wiedergibt. Nur funktioniert das nicht, weil ich nicht die Header-Datei "Ampel.h" habe. Wo krieg ich die her, wie kann ich die mir selber machen?

    Selber schreiben - dort gehört (vermutlich) die Deklaration der Klasse "Ampel" rein.


Anmelden zum Antworten