0
テキストファイルからデータを読み込もうとしていますが、出力が非常に奇妙です。私は多くの研究をしてきました。私がここで間違っていることはあまりにも明白ではありません。ファイルからC++が文字列を読み込むと "-9.25596e + 61"が返されます
これは私がから読み取るしようとしているファイルです。
Duck, Daffy
77.3
Pluto
88.0
Duck, Donald
94.3
Mouse, Mickey
80.0
Mouse, Minnie
94.3
これは私の関数である:私はそれを実行してみたときに
int inputData(string names[], double averages[], int size)
{
ifstream inputFile;
inputFile.open("StudentData.txt");
int count = 0;
for (int i = 0; i < size; i++)
{
if (i == 0 || i % 2 == 0)
{
string name;
inputFile >> name;
cout << name;
if (name.find(','))
{
inputFile >> name;
cout << name;
}
}
else
{
inputFile.ignore();
inputFile >> averages[i];
cout << endl << averages[i] << endl;
}
count++;
}
inputFile.close();
return count/2;
}
そして、ここは本当に奇妙出力されます。
Duck,Daffy
77.3
Pluto88.0
-9.25596e+61
-9.25596e+61
-9.25596e+61
-9.25596e+61
を、それはあなたが冥王星の名として88.0' '読んだことはかなり明らかです。 'string :: find'のドキュメンテーションを読み、それが何を返すかを見てください。 (ヒント:それは 'ブール'ではない) – molbdnilo
@molbdniloあなたは信じられません。私はそれを 'if(name.find( '、')!= -1)'に変更し、今は動作します。私はそれを受け入れることができるように答えとしてあなたのコメントを提出しますか? – SpiroMarshes
'if(i == 0 || i%2 == 0)' - テストは 'if(i%2 == 0)'と書くことができます。 – PaulMcKenzie