所以我的程序中有一個問題是我需要用戶輸入一系列數字(數量取決於它們)號碼以空格隔開,最後必須輸入字母'e'來表示他們已完成輸入數字。將'e'合併到其中的唯一方法是通過確定字符串中的空格並將所述數字放入一個向量中來製作輸入字符串並分隔字符。我設法得到它與一個字符工作,但它然後使任何數字他們輸入1位數字。(C++)在由空格分隔的字符串中分隔數字
Check = true;
cout << "Please enter data (0 - 25) with spaces followed by the letter 'e'.\n";
bool Error = false;
VectorSize = 0;
Data.resize(VectorSize);
int i = 0;
while (Error == false)
{
cin >> CTemp;
switch (CTemp)
{
case 'e':
if (VectorSize != 0)
{
Error = true;
break;
}
else
{
cout << "Please enter at least one value before 'e'";
Check = false;
break;
}
default:
Temp = CTemp - 48;
cout << Temp << endl;
VectorSize++;
Data.resize(VectorSize);
if ((Temp > 25) || (Temp < 0))
{
Data[i].InputData(rand() % 26);
}
else
{
Data[i].InputData(Temp);
}
i++;
}
}
return Check;
上面的代碼是使用char的版本。我需要幫助實現字符串。
如果你可以使用'CString',它的'Tokenize'函數對你很有用。我沒有看到結尾'e'的任何用處。 – sergiol