私は今、私は、ユーザーがファイルbrain.txt
に言うものは何でも書くためのロボットのための機能を持っているスペース
C++で小さなチャットボットプログラムを書いている前に、文字列のすべての部分を無視し、配置しますそれが記憶された順にファイル内の数字を表示します。続けて、ユーザー入力Grapefruit
を入力すると、グレープフルーツを新しい行に置き、接頭辞として6
を入れます。
0 suspect
1 interest
2 underwood
3 interior
4 bullet
5 dog
ボットは、すでに前のユーザ入力年代からを持っているメモリとユーザ入力を比較し、私はに必要な問題に遭遇しました。
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++; }
ユーザ入力は、彼らが同じ文字列じゃないと、それは、比較チェックが失敗するこれら二つを比較した場合grapefruit
ボットのメモリが6 grapefruit
エルゴあるだった場合。
数字を文字列の一部として残しておき、読み上げる文字列の一部を選択して選択できるようにします。私はJSONなどに後でアップグレードするかもしれませんが、今のところこれをやりたいのです。
私の最初の質問は、どのようにスペースの後まで文字列のすべてを無視できますか?ので、私のプログラムが正しく
grapefruit
比較しますとgrapefruit
代わり私の2番目の質問がある
6 grapefruit
の私は複数スペースをスキップして、複数のスペースが経過した後にのみ読み取ることができるように、私はこの機能を拡張することができますか?例えば
、文字列に: 6グレープフルーツ23 53 12 私は数53、そして他には何にアクセスしたいです。
これを改善する方法や、これを誤って実行した可能性がありますか?
これは、プログラムの起動時に実行時にタプルなどのベクトルが発生し、ファイルからのアクセスが停止する可能性があります。これは私が将来できることです。
読む2つの文字列とこれがうまく素晴らしく働いた最初の –