以下ファイルでエラーが起こっています
ソースファイル
#include<iostream>
#include<string>
#include<fstream>
using namespace std;
const int ps = 1000;
string patan[ps][2];
string y;//ユーザーの入力
int mozikensaku(string sm, string km);
void fail();
void kaiwa();
int main()
{
fail();
cout << "コリー:たくさん話そうね!" << endl;
while (true)
{
kaiwa();
}
}
int mozikensaku(string sm, string km)
{
if (sm.find(km) != string::npos)//smの中にkmがあったら
{
return 1;
}
else
{
return -1;
}
}
void fail()
{
int i = 0;//ループカウンタ
ifstream ifs("会話パターン/基本.txt");
string str;
while (getline(ifs, str))
{
if (mozikensaku(str, "#") == 1)//ユーザー側の言葉だったら
{
patan[i][0] = str;
patan[i][0] = str.erase(0, 2);//#部分を削除
}
else
{
patan[i][1] = str;
i++;
}
}
}
void kaiwa()
{
int i = 0;//ループカウンタ
int h = 0;//判定用
cout << endl << "あなた:";
cin >> y;
while (i < ps)
{
if (patan[i][0] != ""&&mozikensaku(y, patan[i][0]) == 1)//空白ではなく、指定文字列を発見したら
{
cout << "コリー:" << patan[i][1] << endl;
h = 1;
}
i++;
}
if (h != 1)
{
cout << "コリー:ごめん、分からない" << endl;
}
}
基本.txt
#おはよ
おはよ~!まだ眠いなあ…(==)
_#おやすみ
おやすみ!明日が楽しみ~(^^)/
「おはよう」と入力しても、
「コリー:ごめん、分からない」と表示されてしまいます。
「おやすみ」の場合も同じです。
どうしたら良いでしょうか??
実行環境:ビジュアルC++2008
回答2件
あなたの回答
tips
プレビュー