我正在努力学习c++。我现在手头拮据。我已经编写了这个简单的方法,它应该要求输入一个字符串,然后返回它。为此,我使用了cin.getLine()方法,但是在使用cin.getLine()之后,字符串没有打印出来。
string getString(char string[])
{
cout << "Please enter a string to process ";
cin >> string;
cout << "String in getString before process: " << string << "\n";
cin.getline(string, STRINGSIZE);
cout << "String after processing: " << string << "\n"; // here string is not printed
return string;
}
有没有人能帮我弄清楚我做错了什么?谢谢
发布于 2013-03-27 13:54:31
您首先使用cin >> string;
将字符串读取到std::string
,然后使用cin.getline(string, STREAMSIZE);
再次从cin
读取某些内容。这不是必需的,读取一次并返回:
string getString(char string[]){
cout << "Please enter a string to process ";
cin >> string;
cout << "String in getString before process: " << string << "\n";
// process this, do whatever you describe as processing it
cout << "String after processing: " << string << "\n"; // string is printed
return string;
}
否则,如果您想使用getline
,请执行以下操作:
std::string name;
std::cout << "Please, enter your full name: ";
std::getline (std::cin,name); // or std::getline(std::cin,string, 'r'); to read
//only to delimiter character 'r'
std::cout << "Hello, " << name << "!\n";
所以要记住的是使用getline
或cin
,除非确实有特殊原因,否则不要同时使用这两者
https://stackoverflow.com/questions/15652613
复制相似问题