我在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串并丢弃第一 –