![](/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.