2016-08-23 3 views
-2

Ich habe den Code untenWarum kann ich keine Zeichenfolge verwenden?

#include <iostream> 
#include <string> 

main(){ 
    std::cout << "What's Your Name? "; 
    string x = ""; 
    std::cin >> x; 
    std::cout << std::endl << "Nice to meet you " << x << "!" << std::endl; 
} 

Und diese Störung erhalten

Running /home/ubuntu/workspace/client.cpp 
/home/ubuntu/workspace/client.cpp: In function ‘int main()’: 
/home/ubuntu/workspace/client.cpp:6:5: error: ‘string’ was not declared in this scope 
    string x = ""; 
    ^
/home/ubuntu/workspace/client.cpp:6:5: note: suggested alternative: 
In file included from /usr/include/c++/4.8/iosfwd:39:0, 
       from /usr/include/c++/4.8/ios:38, 
       from /usr/include/c++/4.8/ostream:38, 
       from /usr/include/c++/4.8/iostream:39, 
       from /home/ubuntu/workspace/client.cpp:1: 
/usr/include/c++/4.8/bits/stringfwd.h:62:33: note: ‘std::string’ 
    typedef basic_string<char> string; 
           ^
/home/ubuntu/workspace/client.cpp:6:12: error: expected ‘;’ before ‘x’ 
    string x = ""; 
      ^
/home/ubuntu/workspace/client.cpp:7:17: error: ‘x’ was not declared in this scope 
    std::cin >> x; 
       ^

Warum bin ich nicht in der Lage eine Zeichenfolge zu benutzen? Ich führe es mit Cloud9 und bin relativ neu in C++. Wie kann ich die Eingabe von cin auf die Zeichenfolge x übertragen?

+8

'std :: string' nicht' string' – jaggedSpire

+1

Randbemerkung: krank es ist 'int main()', nackte Knochen 'main()' ist [ -formed] (http://stackoverflow.com/questions/331148/does-callow-default-return-types-for-functions) – dhke

+1

Für kleine Projekte wie diese könnten Sie ein 'using namespace std;' richtig machen nach dem beinhaltet. – sp2danny

Antwort

4

Sie den Namespace angeben muss: Änderung string-std::string

+2

Zusatz: Das liegt daran, dass 'string' als solches in nativem C++ nicht existiert und nur benutzt werden kann, weil es in' 'definiert ist. Da es sich dort im 'std'-Namespace befindet, müssen Sie std :: string anstelle von string schreiben. Sie können tatsächlich ein typedef ('typedef string std :: string') oder verwenden Sie ein define:' #define STRING std :: string' –

+2

... oder Sie könnten 'using std :: string' verwenden – jaggedSpire

+0

Ich habe noch nie gesehen, dass in C++, aber je mehr Sie wissen ... thx –

Verwandte Themen