我正在尝试学习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/