我无法弄清楚如何在字符串中存储空格的输入,所以我先将它存储在char中,然后将其复制到字符串中。
string name[2]={"Sample name"};
char apname[50];
cout << "Input Name: ";
cin.getline(apname,sizeof(apname));
strcpy (apname,name[2]);
如果有更简单的方法可以帮助我。
答案 0 :(得分:1)
这是更好的方法:
std::string line;
std::getline(std::cin, line);
std::cout << "You said: " << line << "\n";
通过错误检查,提示和重复,它将是:
for (std::string line;
(std::cout << "Input name: ") && std::getline(std::cin, line); )
{
std::cout << "You said: " << line << "\n";
}
std::cout << "Goodbye\n";
答案 1 :(得分:1)
除了跳过空格的运算符<<
之外,C ++标准库还为字符串提供了std::getline
函数重载。改为使用它:
std::string name;
std::getline(cin, name);
您调用的函数
strcpy(apname, name[2]);
由于以下几个原因,不正确:
string
name[2]
在两个项目的数组上引用了一个超出数组末尾的项目。