私はプログラミングには新しく、これは皆さんにはっきりとした答えがあるかもしれないので、私は本当に困惑しています。なぜ次の関数ではうまくいかないのですか?私はiostreamヘッダーをインクルードしていますので、関数内にあることと何か関係があると仮定していますか?coutは関数では印刷されません
int inputFileData(song musicLibrary[])
{
char discard = ' ';
int counter = 0, length = 0;
ifstream inData;
inData.open("songs.txt");
if (!inData)
{
cout << "Error: No input file found " << endl;
cout << "Program terminating..." << endl;
return 1;
}
while (!inData.eof())
{
inData.getline(musicLibrary[counter].title, ARRAY_CONST, ';');
inData.getline(musicLibrary[counter].artist, ARRAY_CONST, ';');
inData >> musicLibrary[counter].durationMinutes;
inData.get(discard);
inData >> musicLibrary[counter].durationSeconds;
inData.get(discard);
inData.getline(musicLibrary[counter].album, ARRAY_CONST, '\n');
length = strlen(musicLibrary[counter].album);
if (length = 0)
{
cout << length << endl; //This cout object doesn't work in this function
break;
}
else
counter++;
}
return counter;
}
''(長さ= 0)場合に、各coutの前に付けることができます - '=='使用します。 – Eli
必須の読み込み:[なぜループ状態の 'iostream :: eof'が間違っていると思われますか?](https://stackoverflow.com/questions/5605125/why-is-iostreameof-inside-a-loop-condition-considered-間違っている) – molbdnilo
配列を使用せず、std :: vectorを使用してください。 char配列は使用しないでください。std :: stringを使用してください。 –