0
您好,我正在學習C++,我試圖從一行中提取三個名稱(第一,中間,最後)。試圖從一行中使用getline提取三個名稱
cout<< "Please enter your full name" << endl;
getline(cin, first_name, ' ');
getline(cin, midLast_name);
我把中間名和姓氏作爲變量,然後將它們分開。我需要能夠接受一個空間作爲中間名,所以這就是我正在做的。但是,在我的條件聲明中,即使有代碼,代碼也找不到空格。有任何想法嗎?
if (midLast_name.find(" ") == true)
{
first_space = midLast_name.find(" ");
middle_name = midLast_name.substr(0,first_space);
last_space = midLast_name.rfind(" ");
last_name = midLast_name.substr(midLast_name.rfind(" ") + 1, full_name.length());
}
你會如何接受一箇中間名作爲空間?如果用戶輸入'First Last'? –
2014-10-20 00:32:58
由於'getline()'得到了這條線,爲什麼不直接得到這條線並處理這條線的分裂呢? – ChiefTwoPencils 2014-10-20 00:38:01
爲什麼不每行都有一個名字?在它們中間有空格的第一個,中間或最後一個名字是很有可能的。 – Galik 2014-10-20 01:02:32