2013-11-27 3 views
0

Я новичок в C++, может кто-нибудь объяснит мне, почему я получил следующие ошибки, когда я использую «std :: getline»? Вот код:C++ std :: getline error

#include <iostream> 
#include <string> 

int main() { 

    string name; //receive an error here 

    std::cout << "Enter your entire name (first and last)." << endl; 
    std::getline(std::cin, name); 

    std::cout << "Your full name is " << name << endl; 

    return 0; 
} 


ERRORS: 
te.cc: In function `int main()': 
te.cc:7: error: `string' was not declared in this scope 
te.cc:7: error: expected `;' before "name" 
te.cc:11: error: `endl' was not declared in this scope 
te.cc:12: error: `name' was not declared in this scope 

Однако программа будет работать и компилировать, когда я использовал «GetLine» с «использованием патезраса;» вместо std :: getline.

#include <iostream> 
#include <string> 

using namespace std; 

int main() { 

    string name; 

    cout << "Enter your entire name (first and last)." << endl; 
    getline(cin, name); 

    cout << "Your full name is " << name << endl; 
    return 0; 
} 

Спасибо!

ответ

8

Ошибки не от std::getline. Ошибка заключается в том, что вам необходимо использовать std::string, если вы не используете using namespace std. Также понадобится std::endl.

4

Необходимо использовать std:: для всех идентификаторов этого пространства имен. В этом случае std::string и std::endl. Вы можете уйти без него на getline(), так как поиск Koenig позаботится об этом для вас.

1
#include <iostream> 
#include <string> 

int main() 
{ 
    std::string name; // note the std:: 

    std::cout << "Enter your entire name (first and last)." << std::endl; // same here 
    std::getline(std::cin, name); 

    std::cout << "Your full name is " << name << std::endl; // and again 

    return 0; 
} 

Вам просто нужно указать пространство имен для различных элементов, которые находятся в std пространства имен (в качестве альтернативы, вы можете удалить все std:: и наденьте на using namespace std; линию после того, как ваши включает.)

Смежные вопросы