cout不会在功能上打印

时间:2017-10-22 10:08:29

标签: c++ iostream cout

我对编程很新,所以这可能是一个问题,对你们来说有明显的答案,我真的很难过,为什么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;
}

3 个答案:

答案 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::

为每个cout添加前缀