c++中由于某种原因导致字符串被截断

String Truncated for Some Reason in C++

本文关键字:字符串 由于某种原因 c++      更新时间:2023-10-16

所以,我刚刚开始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;
}

例如,我输入"Yay it worked!",它输出"Yay"

std::cin的分隔符是空格,所以它只占用句子的第一个单词。像@πάνταῥεῖ说,而是使用std::getline(cin,answer)

正如注释所解释的,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);
相关文章: