Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将文本段落存储在变量C++;_C++ - Fatal编程技术网

C++ 将文本段落存储在变量C++;

C++ 将文本段落存储在变量C++;,c++,C++,我试图编写一个程序,接受用户的输入,并将整个段落存储在一个变量中。但是,如果用户输入:“你好,这是一些文本。”它只返回“你好”,有人能帮忙吗 谢谢 #include <iostream> #include <iomanip> using namespace std; class GetText { public: string text; void userText() { cout << "Please typ

我试图编写一个程序,接受用户的输入,并将整个段落存储在一个变量中。但是,如果用户输入:“你好,这是一些文本。”它只返回“你好”,有人能帮忙吗

谢谢

#include <iostream>
#include <iomanip>

using namespace std;

class GetText
{
public:

    string text;

    void userText()
    {
        cout << "Please type a message: ";
        cin >> text;
    }

    void to_string()
    {
        cout << "\n" << "User's Text: " << "\n" << text << endl;
    }
};

int main() {

    GetText test;
    test.userText();
    test.to_string();

    return 0;
}
#包括
#包括
使用名称空间std;
类GetText
{
公众:
字符串文本;
void userText()
{
cout>文本;
}
void to_string()
{
cout您可以使用从用户输入中读取整行内容:

std::string text;
std::getline(std::cin, text);

使用cin获取值时,默认情况下,输入流将空格视为字符串分隔符。相反,您应该使用std::getline(),它读取输入,直到检测到新行字符为止

但是,正如我上面所说,std::getline()读取输入直到检测到一个新行字符,这意味着它一次只能读取一行。因此,为了读取包含多行的整个段落,需要使用循环

#include <iostream>
#include <iomanip>
#include <string> //For getline()

using namespace std;

// Creating class
class GetText
{
public:

    string text;
    string line; //Using this as a buffer

    void userText()
    {
        cout << "Please type a message: ";

        do
        {
            getline(cin, line);
            text += line;
        }
        while(line != "");
    }

    void to_string()
    {
        cout << "\n" << "User's Text: " << "\n" << text << endl;
    }
     };

     int main() {

    GetText test;
    test.userText();
    test.to_string();
    system("pause");
    return 0;
}
#包括
#包括
#包含//用于getline()
使用名称空间std;
//创建类
类GetText
{
公众:
字符串文本;
字符串行;//将其用作缓冲区
void userText()
{

cout
cin
不关心空格或新行..使用
while(cin>>一些字符串流)
getline
@Brandon由于某种原因,我在使用某个字符串流或getline时收到一条错误消息。我是否需要导入某个内容?其次,我如何将其存储在文本变量中?您需要包括标题您确定它返回
“Hello”
而不是
“Hello”
?@Brandon:相关的东西不是
cin
,而是
operator>>(std::istream&,std::string&)
。所有流都以这种方式运行,而不仅仅是
std::cin