![](/img/trans.png)
[英]std::getline ignores first character when taking multiple string inputs and string subscript goes out of range when not using cin.ignore()
[英]how to take multiple string inputs using getline()
我必须使用cin.getline()
获取多个字符串输入,并且我编写了以下代码。 我尝试使用替代解决方案,例如使用cin.ignore()
,但它似乎效果不佳。
#include <iostream>
#include <cstring>
using namespace std;
class Node{
public:
char str_1[25];
char str_2[25];
};
int main(){
Node *test;
cout << "Str_1: ";
cin.getline(test->str_1, 25);
//cin.ignore();
cout << "Str_2: ";
cin.getline(test->str_2, 25);
return 0;
}
该解决方案甚至不要求第二个字符串,即使使用cin.ignore()
命令。
我不是一个非常高级的编码器,所以请尝试用简单的术语解释解决方案。
由于test
是指针,所以需要手动分配memory来存储数据。 您可以使用new
关键字执行此操作。 尝试这个:
Node *test = new Node;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.