2017-02-18 4 views
1

Ich habe einige sehr einfache Dinge in Visual Studio 2015 getestet. Aus irgendeinem Grund kann ich nicht für das Leben von mir, herauszufinden, warum dieses einfache Programm nicht Kompilieren Sie in Visual Studio 2015 C++ IDE. Hier ist der Quellcode:Visual Studio C++ akzeptiert nicht >> oder << nach den ursprünglichen Deklarationen

#include <iostream>; 
#include <cstdlib>; 
#include "stdafx.h"; 

using namespace std; 

int main() { 
    cout << "Hello world!"; 
    cout << "\nI am a C++ program!"; 
    cout << "\n\nWhat is your name? "; 
    string name; 
    cin >> name; 
    cout << "Nice to meet you, " << name; 
} 

Es kompiliert PERFECTLY fein in http://www.cpp.sh, abzüglich der "stdafx.h" Bibliothek natürlich, denn das ist nur Visual Studio. Hier war das, was ich bekam für

Fehlermeldungen:

1> c: \ users \ orion \ Dokumente \ Visual Studio 2015 \ projects \ ConsoleApplication1 \ ConsoleApplication1 \ consoleapplication1.cpp (13): Fehler C2679: binary '< <': kein Operator gefunden, der einen rechten Operanden vom Typ 'std :: string' akzeptiert (oder es gibt keine akzeptable Konvertierung) 1> c: \ users \ orion \ documents \ visual studio 2015 \ projects \ consoleapplication1 \ consoleapplication1 \ consoleapplication1.cpp (13): Hinweis: beim Versuch, die Argumentliste '(std :: basic_ostream>, std :: string)'

Etwas ist seltsam, es muss mit Visual Studio 2015 zu tun haben. Der App-Typ ist eine Standard-Konsolenanwendung. Ich habe geschaut und kann dafür keine Antwort finden.

+4

'#include ' '? – Ryan

+1

Sie müssen '#include '. –

+0

@Monstarles: '' ist keine Datei, die die gesamte Standardbibliothek enthält. Es definiert nur einige Makros wie "EXIT_SUCCESS" und deklariert einige Funktionen wie "exit". –

Antwort

2

Sie müssen <string> Header verwenden, um std::string zu verwenden.

+0

Yeaaaah das hat es getan. Ich hätte schwören können, dass es in meiner cstdlib enthalten war – Monstarules

+0

cstdlib unterscheidet sich zwischen den Apps. Danke – Monstarules

+0

@Monstarles: Siehe http://rexttester.com/KKNKP15624 – Destructor

1

Die Header sein sollte:

#include "stdafx.h" 

#include <iostream> 
#include <cstdlib> 

Sie auch <string> müssen, wie andere Antworten zur Kenntnis genommen. Die stdafx.h bewirkt, dass der gesamte vorherige Code verworfen wird. Daher muss es die erste Zeile der Quelldatei sein.

Verwandte Themen