我正在尝试学习C ++。我创建了一个输入名称的程序,然后说“你好,!”。但是当我输入“ Aditya Singh”作为名称时,它会输出“ Hello,Aditya!”,这不是我期望的。

我的代码:

#include <iostream>
#include <string>

using namespace std;

// I created the class because I was learning C++ Classes
class MyClass {
public:
    void setName(string inp) {
        name = inp;
    }
    string getName() {
        return name;
    }

private:
    string name;
};

int main() {
    // Input Name

    string inpName;
    cout << "Please enter your name\n";
    cin >> inpName;

    // Say hello

    MyClass name;
    name.setName(inpName);
    cout << "Hello, " << name.getName() << "!" << endl;
}


是否由于字符串中的空白而发生?那么如何输出带有空格的字符串?

最佳答案

这是因为cin >> inpName一次读取一个单词,是的,这是因为输入中的空格。似乎您需要的是一种读取直到换行符\n的机制。该功能已经存在,只需将cin >> inpName替换为

std::getline(cin, inpName); // Store everything until \n in inpName

关于c++ - 字符串中的空格是否会更改程序的解释方式?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55648393/

10-11 17:05