我对编程很新,所以这可能是一个问题,对你们来说有明显的答案,我真的很难过,为什么cout不能在以下函数中工作?我已经包含了iostream标题,所以我假设它与函数中有关系吗?
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 :(得分:3)
第if (length = 0)
行应为if (length == 0)
。
答案 1 :(得分:1)
阐述以利的回答:
if (length = 0)
将值0
分配到length
,然后评估表达式。由于表达式返回0
,因此条件的计算结果为false
,并且您不会输入if
子句。
相反,请使用if (length == 0)
答案 2 :(得分:0)
您正在使用cout而不使用标准命名空间。
确保在main之前使用了以下语句: -
using namespace std;
或者您可以使用std::