VS2008 Win32-Konsolenanwendung?

Von: , Frage gestellt am Fr, 27. Mär 2009

Guten Tag zusammen,

ich mache momentan meine ersten Erfahrungen mit VS 6 sowie VS 2008

In der Schule benutzen wir VS 6, leider kam ich zuhause auf die schnelle nur an VS 2008.

Zur eigentlichen Frage:

Der Quellcode den ich habe, funktioniert, bei VS 6 jedeoch nicht bei CS 2008, gibt es da noch mehr zu beachten, als bei der "alten" Version?

Quellcode:

#include "iostream.h"


//Beginn des Hauptprogramms

int main()
{
//Definition der Variablen

int string name1;
int string name2;

//Namenseingabe

cout<<"Bitte 2 Namen eingeben"<<endl;

cin >>name1;
cin >>name2;

return 0;
}

Leider hab ich selber noch kaum was raus lesen können, da ich mit den Fehlermeldungen nciht wirklich viel anfangen kann.

Auszug aus dem Log:

1>------ Erstellen gestartet: Projekt: test, Konfiguration: Debug Win32 ------
1>Kompilieren...
1>test.cpp
1>.\test.cpp(10) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'name1'
1>.\test.cpp(10) : error C2065: 'name1': nichtdeklarierter Bezeichner
1>.\test.cpp(11) : error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'name2'
1>.\test.cpp(11) : error C2086: 'int string': Neudefinition
1> .\test.cpp(10): Siehe Deklaration von 'string'
1>.\test.cpp(11) : error C2065: 'name2': nichtdeklarierter Bezeichner
1>.\test.cpp(15) : error C2065: 'cout': nichtdeklarierter Bezeichner
1>.\test.cpp(15) : error C2065: 'endl': nichtdeklarierter Bezeichner
1>.\test.cpp(17) : error C2065: 'cin': nichtdeklarierter Bezeichner
1>.\test.cpp(17) : error C2065: 'name1': nichtdeklarierter Bezeichner
1>.\test.cpp(18) : error C2065: 'cin': nichtdeklarierter Bezeichner
1>.\test.cpp(18) : error C2065: 'name2': nichtdeklarierter Bezeichner
1>Das Buildprotokoll wurde unter "file://c:\Users\Sven\Documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm" gespeichert.
1>test - 11 Fehler, 0 Warnung(en)
========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


Bei der einführung, habe ich auch das "Hallo Welt" Programm versucht, jedoch kamen hier ähnliche Fehlermeldungen.

Freue mich über jeden Verbesserungsvorschlag, sofern ich was vergessen habe, was für die "Analyse" gebraucht wird, seht es mir bitte nach =)

8 Antworten zu dieser Frage

  1. Antwort von nach einer Stunde 0 hilfreich
    Re: VS2008 Win32-Konsolenanwendung?

    Hi,

    kurze Frage dazu: Was für einen Typen möchtest Du mit diesen Zeilen deklarieren? int string name1;
    int string name2;

    Du gibst ja quasi 2 Typen an, wenn ich da jetzt nichts übersehe.

    und versuche mal:

    #include <iostream.h> // statt Anführungszeichen
    using namespace std;


    Das könnte dem Compiler cin und cout beibiegen.

  2. Antwort von nach einer Stunde 0 hilfreich
    Re: VS2008 Win32-Konsolenanwendung?

    Hi Quellcode:

    #include "iostream.h"
    Du probierst hier eine lokale "iostream.h" zu finden int string name1;
    int string name2;
    name1+name2 können nicht sowohl vom Typ int und string sein! String ist auch kein Standardtyp von C und muss erst importiert werden.

    #include <iostream>
    #include <string>
    void main()
    {
    string name1; string name2;
    std::cout << "Bitte 2 Namen eingeben" << endl;
    std::cin >> name1;
    std::cin >> name2;
    ...
    }
    


    Grüße
    m4tt3n

  3. Antwort von nach einer Stunde 0 hilfreich
    Re: VS2008 Win32-Konsolenanwendung?

    Hallo ich mache momentan meine ersten Erfahrungen mit VS 6 sowie VS
    2008
    Gut! In der Schule benutzen wir VS 6, leider kam ich zuhause auf
    die schnelle nur an VS 2008.
    Das ist sogar (viel viel) besser. Zur eigentlichen Frage:
    Der Quellcode den ich habe, funktioniert, bei VS 6
    Glaub ich Dir nicht. jedeoch nicht bei CS 2008, gibt es da noch mehr zu
    beachten, als bei der "alten" Version?
    Ja und nein. Üblicherweise klappt der Quelltext
    bei beiden. Dort wo das nicht der Fall ist,
    seid ihr noch nicht angekommen ;-) Quellcode:
    #include "iostream.h"
    int main()
    {
    int string name1;
    int string name2;
    cout<<"Bitte 2 Namen eingeben"<<endl;
    cin >>name1;
    cin >>name2;
    return 0;
    }

    #include <iostream>
    #include <string>
    // Alle Funktionen von iostream und string 
    // liegen im "Namesraum" std::
    // also:
    using namespace std;
    //Beginn des Hauptprogramms
    int main()
    {
    //Definition der Variablen
    string name1;
    string name2;
    // Namenseingabe
    cout << "Bitte 2 Namen eingeben" << endl;
    cin >>name1;
    cin >>name2;
    return 0;
    }
    


    Grüße

    CMБ

    • Antwort von nach 6 Stunden 0 hilfreich
      Re^2: VS2008 Win32-Konsolenanwendung?

      Danke, für die schnellen Antworten, ich habe das jetzt mal mit dem überarbeiteten Quellcode versucht, aber bekomme weiterhin noch fehlermeldung, werde mir nun mal schleunigst die Version aus der Schule besorgen und das dann nochmal wiederholen #include <iostream>
      #include <string>

      // Alle Funktionen von iostream und string
      // liegen im "Namesraum" std::
      // also:
      using namespace std;


      //Beginn des Hauptprogramms

      int main()
      {
      //Definition der Variablen
      string name1;
      string name2;

      // Namenseingabe
      cout << "Bitte 2 Namen eingeben" << endl;

      cin >>name1;
      cin >>name2;

      return 0;
      }

      Fehlermeldung:

      1>Kompilieren...
      1>test.cpp
      1>.\test.cpp(1) : warning C4627: "#include <iostream>": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
      1> "stdafx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
      1>.\test.cpp(2) : warning C4627: "#include <string>": Wird bei der Suche nach Verwendung des vorkompilierten Headers übersprungen.
      1> "stdafx.h" Direktive hinzufügen oder vorkompilierten Header erneut erstellen
      1>.\test.cpp(26) : fatal error C1010: Unerwartetes Dateiende während der Suche nach dem vorkompilierten Header. Haben Sie möglicherweise vergessen, im Quellcode "#include "stdafx.h"" einzufügen?
      1>Das Buildprotokoll wurde unter "file://c:\Users\Sven\Documents\Visual Studio 2008\Projects\test\test\Debug\BuildLog.htm" gespeichert.
      1>test - 1 Fehler, 2 Warnung(en)
      ========== Erstellen: 0 erfolgreich, Fehler bei 1, 0 aktuell, 0 übersprungen ==========


      aber danke nochmal für die Hilfestellungen.

      Gruß Sven

      • Antwort von nach 6 Stunden 0 hilfreich
        Re^3: VS2008 Win32-Konsolenanwendung?

        Hi
        ich kenn mich mit VS2008 C nicht so aus, aber

        :1>.\test.cpp(2) : warning C4627: "#include <string>": Wird bei
        :der Suche nach Verwendung des vorkompilierten Headers
        :übersprungen.
        :1>        "stdafx.h" Direktive hinzufügen oder vorkompilierten
        :Header erneut erstellen
        :1>.\test.cpp(26) : fatal error C1010: Unerwartetes Dateiende
        :während der Suche nach dem vorkompilierten Header. Haben Sie
        :möglicherweise vergessen, im Quellcode "#include "stdafx.h""
        :einzufügen?

        mal gelesen und versucht?

        Grüße
        m4tt3n

      • Antwort von nach 7 Stunden 0 hilfreich
        Re^3: VS2008 Win32-Konsolenanwendung?

        Hallo Danke, für die schnellen Antworten, ich habe das jetzt mal mit
        dem überarbeiteten Quellcode versucht, aber bekomme weiterhin
        noch fehlermeldung, werde mir nun mal schleunigst die Version
        aus der Schule besorgen und das dann nochmal wiederholen
        brauchst Du nicht. 1>Kompilieren...
        1>test.cpp
        1>.\test.cpp(1) : warning C4627: "#include <iostream>": Wird
        bei der Suche nach Verwendung des vorkompilierten Headers
        übersprungen.
        1> "stdafx.h" Direktive hinzufügen oder vorkompilierten
        Header erneut erstellen
        1>.\test.cpp(2) : warning C4627: "#include <string>": Wird bei
        der Suche nach Verwendung des vorkompilierten Headers
        übersprungen.
        1> "stdafx.h" Direktive hinzufügen oder vorkompilierten
        Header erneut erstellen
        Du hast nur bei der Projekterstellung einen
        kleinen Fehler gemacht. Ein "Konsolenprojekt",
        also ein "normales Programm" wird wie folgt erzeugt:


        • Datei => Neu => Projekt

        • "Visual C++" -- "Win32" -- "Win32 Console Application" [OK]

        • dann Weiter, nicht Fertigstellen!

        • dann: (*) Konsolenprogramm, [x] Leeres Projekt, => [Fertigstellen]

        • dann Rechtsklick auf "Quelltexte/(source files)" => "Hinzufügen" => "neues Element" => "C++-Datei".



        Dann klappts auch so, wie hier angefangen ;-)

        Grüße

        CMБ

        • Antwort von nach 8 Stunden 0 hilfreich
          Re^4: VS2008 Win32-Konsolenanwendung?

          Hallo, danke nochmals für die schnellen Antworten, habe es nun nochmal genau so gemacht, wie hier beschrieben und siehe da, es funktioniert einwandfrei, bin ja wirklich fasziniert, hatte mich eigentlich schon frast drauf eingestellt, dass ich dieses Wochenende nichts mehr dran machen kann. Ich hatte bei der Erstellung kein leeres Projekt genommen, dadran lag es.
          Du hast nur bei der Projekterstellung einen
          kleinen Fehler gemacht. Ein "Konsolenprojekt",
          also ein "normales Programm" wird wie folgt erzeugt:


          • Datei => Neu => Projekt

          • "Visual C++" -- "Win32" -- "Win32 Console Application"
            [OK]

          • dann Weiter, nicht Fertigstellen!

          • dann: (*) Konsolenprogramm, [x] Leeres Projekt, =>
            [Fertigstellen]

          • dann Rechtsklick auf "Quelltexte/(source files)" =>
            "Hinzufügen" => "neues Element" => "C++-Datei".



          Dann klappts auch so, wie hier angefangen ;-)
          Danke nochmal ist somit alles beantwortet =)

          Gruß Sven

  4. Antwort von nach 12 Tagen 0 hilfreich
    Re: VS2008 Win32-Konsolenanwendung?

    Hallo

    1. Da fehlt die Angabe des Namespace. Die sind dazu gut, mehrere Funktionen, die den selben Namen haben, in mehrere Bereiche einzugruppieren. Für cin und cout gilt der Namespace std, also so:

    #include <iostream>
    using namespace std;

    ...

    2. Du sagtest, es funktioniere in VS6, aber nicht in CS 2008. Ein C++ Quellcode klappt natürlich nicht in einem C# (C# -> CSharp -> CS) Compiler.

    mfg
    hahihu

Keine passende Antwort gefunden? Jetzt eigene Frage stellen!