2つのテキストファイルがあります。キーワードを使用してテキストファイルから番号を返します。
ファイル1つの内容: アップル5 マンゴー10 オレンジ15
ファイル2つの内容: アップル10 マンゴー15 オレンジ20
I両方のファイルの内容は、次のようになりキーワード(ここではフルーツの名前)を取ってランダムにファイルの1つを選択し、そのキーワードに対応する数値を返すプログラムを作ろうとしています。以下は私のコードです。しかし、このプログラムを実行すると、最初の値のみが表示され、対応する値は表示されません。私は間違って何をしていますか?あなたが要求した値に到達するまで、あなたは順次ファイルを読み込む必要があり、および:
while (inResultFile >> sym >> value)
{
return value;
}
注:
double Fruit::Price(string & sym)
{
ifstream inResultFile;
string file_selected;
int choice;
string line;
/*choice = (rand()%2);
switch (choice)
{
case 0:
file_selected = "file 1.txt";
break;
case 1:
file_selected = "file 2.txt";
break;
}*/
inResultFile.open("file 1.txt", ios::in);
if (inResultFile.is_open())
{
double value=-1;
string name;
while (inResultFile >> name >> value)
{
cout<<name<<value;
if(name==sym)
return value;
}
}
else
cout << "Sorry, the file could not be openend." << endl;
return -1;
}
int main()
{
Fruit Obj;
string symbol;
double f_Price;
cout << "Enter a keyword to get the fruit price" << endl << endl;
cin >> symbol;
f_Price = Obj.Price(symbol);
cout << "The selected price of the input symbol is " << f_Price << endl;
return 0;
}
ですあなたのデバッガでは、 'value'の価値はあなたに何を伝えましたか? – UKMonkey
私がマンゴーに入ったときに得られる価値は5、すなわちリンゴの価値です。別のキーワードを試しても同じことが起こります。 –
これはデバッガではないので、プログラムを実行して使用しようとしています。これを読んでください。 https://ericlippert.com/2014/03/05/how-to-debug-small-programs/ – UKMonkey