VS2008 Win32-Konsolenanwendung?

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>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 =)

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 // statt Anführungszeichen
using namespace std;

Das könnte dem Compiler cin und cout beibiegen.

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 
#include 

void main()
{
 string name1; string name2;

 std::cout \> name1;
 std::cin \>\> name2;
...
}

Grüße
m4tt3n

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 :wink:

Quellcode:
#include „iostream.h“
int main()
{
int string name1;
int string name2;
cout>name1;
cin >>name2;
return 0;
}

#include 
#include 

// 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 \>name1;
 cin \>\>name2;

 return 0;
}

Grüße

CMБ

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
#include

// 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 >name1;
cin >>name2;

return 0;
}

Fehlermeldung:

1>Kompilieren…
1>test.cpp
1>.\test.cpp(1) : warning C4627: "#include ": 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 ": 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

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

:1\>.\test.cpp(2) : warning C4627: "#include ": 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

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 ": 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 ": 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 :wink:

Grüße

CMБ

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 :wink:

Danke nochmal ist somit alles beantwortet =)

Gruß Sven

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
using namespace std;

  1. 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