我在C++忽略字符串的所有部分的空間
現在我有功能爲機器人編寫任何用戶說一個文件brain.txt
寫一個小的聊天機器人程序之前,並把一號碼旁邊的數字按記錄時的順序排列。繼續,輸入用戶輸入Grapefruit
將把葡萄柚放在一個新的行上,並將6
作爲前綴。
0 suspect
1 interest
2 underwood
3 interior
4 bullet
5 dog
我碰到,我需要問題比較的userinput與機器人已經從以前的userinput的內存。
ifstream brain ("projects/AI/brain.txt");
if (brain.is_open())
{
while (getline(brain,memory))
{
cout << "memory: " << memory << endl;
cout << "userinput: " << userinput << endl;
if (memory == userinput)
{
exists = true;
//if it exists, tell the user, and break
cout << "I know that already!" << endl;
break;
}
else { filepos++; }
如果userinput是grapefruit
機器人的記憶是6 grapefruit
ERGO如果它比較這兩個對比檢查將失敗,因爲他們是不一樣的字符串。
我希望數字仍然是字符串的一部分,並且爲了能夠選擇性地選擇部分字符串來讀取。我可能會升級到JSON或類似的東西,但現在,這是我想要這樣做的方式。
我的第一個問題是,我怎麼能忽略所有的字符串,直到後有一個空格?所以我的計劃將正確地比較
grapefruit
和grapefruit
代替6 grapefruit
我的第二個問題是,我可以擴展這個功能,這樣我可以跳過多個空間只有經過多個空格已通過閱讀?
例如,在字符串中 6葡萄柚23 53 12 我要訪問的53號,而不是其他。
方法來改善這種方式,我可能做得不正確嗎?
我可以在程序啓動時將運行時的元組或向量解釋爲一個向量,並阻止我從文件中進行訪問。這是我未來可能做的事情。
讀2串並丟棄第一 –