所以,我刚刚开始使用C ++,我遇到了问题。我声明了一个字符串变量和所有这些,但是当我输入时给变量一个值,然后尝试显示它,它只显示句子的第一个单词。
#include <iostream>
#include <string>
using namespace std;
using std::string;
int main()
{
string answer;
cout << "Give me a sentence and I will repeat it!";
cin >> answer;
cout << answer;
return 0;
}
例如,我输入了#34;它是否有效!&#34;,它输出了&#34; Yay&#34;
答案 0 :(得分:3)
std::cin
的分隔符是空格,所以它只取你句子的第一个单词。就像@πάνταῥεῖ所说的那样,改用std::getline(cin,answer)
。
答案 1 :(得分:1)
正如评论所解释的那样,cin
只会在满足空白的第一位之前读取(在您的情况下,这似乎是一个空格)。相反,您可以使用std::getline
,它将读取指定的字符,或默认返回:
std::string answer;
std::cout << "Give me a sentence and I will repeat it!";
std::getline(std::cin, answer):
std::cout << answer;
使其读取直到指定的字符看起来像:
char end_char = 'a';
std::getline(std::cin, answer, end_char);