C++ Lernen



  • Hallo Leute,

    ich fange gerade an Visual C++ 2010 zu Lernen,

    kann mir jeman ein Buch empfehlen wo alles sehr gut beschrieben steht?

    ansonsten hab ich mal ein Übungsprogramm geschrieben aber...naja seht selbst was falsch ist:

    Ich habe nach dem ich es Geschrieben habe, auf Debuggen geklickt hier so:

    // Stehen.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung.
    //

    #include "stdafx.h"

    inline int _tmain(int argc, _TCHAR* argv[])
    {
    cout<<"Stehen";<<endl<<endl;
    cout<<"XXX";<<endl;
    cout<<"XXX"; <<endl;
    cout<<" x";<<endl;
    cout<<"XXXXXXXX";<<endl;
    cout<<"X XXXX X";<<endl;
    cout<<"X XXXX X";<<endl;
    cout<<"X XXXX X";<<endl;
    cout<<" X X ";<<endl;
    cout<<" X X ";<<endl;
    cout<<" X X ";<<endl;
    cout<<"XX XX";<<endl;
    return 0;
    }

    Dann Kam dies dabei heraus:
    1>------ Erstellen gestartet: Projekt: Stehen, Konfiguration: Debug Win32 ------
    1> Stehen.cpp
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(9): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(9): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(10): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(10): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(11): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(11): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(12): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(12): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(13): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(13): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(14): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(14): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(15): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(15): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(16): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(16): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(17): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(17): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(18): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(18): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(19): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(19): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(20): error C2065: 'cout': nichtdeklarierter Bezeichner
    1>c:\users\florian\documents\visual studio 2010\projects\stehen\stehen\stehen.cpp(20): error C2143: Syntaxfehler: Es fehlt ';' vor '<<'
    ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========

    Was ist den Hier Falsch? 😕

    Danke für eure hilfe 🙄



  • Wieso heisst deine Haupfunktion so seltsam und weshalb ist sie inline ? Und damit std::cout definiert ist musst du vor der main noch " #include <iostream> " stehen. Vor cout und endl bitte noch ein std:: . Und an diesem Forum haben wir Syntaxcoloring. Zudem hast du jede Menge unnütze (und auch falsche) Semikola.

    Konkret so.



  • Wieso heisst deine Haupfunktion so seltsam?

    Wegen Visual Studio



  • ProgrammierProfi schrieb:

    Wieso heisst deine Haupfunktion so seltsam?

    Wegen Visual Studio

    Man kann auch in VS

    int main( int argc, char* argv[] )
    

    benutzen. So ist es Stadndardkonform, tmain ist Windows- bzw VS-spezifisch.
    Inline ist aber für die main-Funktion in jedem Fall sinnlos.



  • manni66 schrieb:

    Inline ist aber für die main-Funktion in jedem Fall sinnlos.

    Ist es denn überhaupt erlaubt?



  • EOutOfResources schrieb:

    manni66 schrieb:

    Inline ist aber für die main-Funktion in jedem Fall sinnlos.

    Ist es denn überhaupt erlaubt?

    Erlaubt ist, was der Compiler frisst 😉
    Standardkonform ist es IMHO aber nicht.



  • 3.6.1 Main function
    [...] A program that declares main to be inline or static is ill-formed. [...]

    Der Compiler wird das sicherlich ignorieren, aber eine Warnung würde ich mir doch schon wünschen.



  • Huch, wird in der 2010er Version nicht mehr gewarnt?
    Aber unabhängig davon (ich glaube nicht, dass VS bei einem neuen Projekt main als inline deklariert), solltest du dich, lieber TE, bei den ersten Versuchen von TCHARs fern halten. Deklariere die main als

    int main(int argc, char** argv)
    

    und falls es Probleme beim Kompilieren gibt (das ist sehr wahrscheinlich), stelle unter Project->Properties->General->Character-Set auf Multibyte (nicht Unicode) [in der deutschen Version ähnlich] um.



  • Einfach eine Win32 Konsolenanwendung und dann das Häkchen "Leeres Projekt" nicht vergessen.



  • 314159265358979 schrieb:

    das Häkchen "Leeres Projekt" nicht vergessen.

    +1



  • 314159265358979 schrieb:

    Einfach eine Win32 Konsolenanwendung und dann das Häkchen "Leeres Projekt" nicht vergessen.

    Und VORHER das Häkchen "Precompilierte Header" ausmachen. Sonst kriegt man ein "leeres" Projekt, das gar nicht mal so leer ist.



  • volkard schrieb:

    314159265358979 schrieb:

    Einfach eine Win32 Konsolenanwendung und dann das Häkchen "Leeres Projekt" nicht vergessen.

    Und VORHER das Häkchen "Precompilierte Header" ausmachen. Sonst kriegt man ein "leeres" Projekt, das gar nicht mal so leer ist.

    Das habe ich vergessen zu erwähnen. 👍



  • yahendrik schrieb:

    Huch, wird in der 2010er Version nicht mehr gewarnt?

    Doch, aber erst ab Warnstufe 3 (/W3).
    Unabhängig von der Warnstufe wird allerdings im Editor darauf hingewiesen, dass inline ignoriert wird (main rot unterstrichen).



  • Lernst du jetzt C++ oder Visual C++?
    Das sind zwei verschiedene Schuhe!
    Visual C++ ist eine IDE für C++ und Visual C++.
    Dein Programm sieht aber ganz nach C++ aus (außer die komische Hauptfunktion), zumal es keine GUI hat. (Kann man mit Visual C++ auch Konsolenprogramme programmieren? )
    #JP


Anmelden zum Antworten