count не может быть использован как функция - PullRequest
0 голосов
/ 04 февраля 2012

В моей программе есть ошибка, которая говорит, что 'count' не может использоваться как функция.

указывает на нижнюю строку

mycount = (int) count (t1q1.begin(), t1q1.end(), 1);

Я уже включил алгоритм, используя пространство имен std, но все равно он показывает ошибку.

Это то, что я делаю с моим вектором t1q1 Приведенный ниже код позволяет программе считывать в файле и извлекать определенную информацию и возвращать ее к вектору

МОЯ ФУНКЦИЯ ЧИТАТЬ ФАЙЛ И ХРАНИТЬ В ПЕРЕМЕННЫХ

void checkForAnswers(char *ptr)
{
    char String[256];
    int count = 0;

    while ( *ptr != ':')
    {
        String[count] = *ptr;
        ptr++;
        count++;
    }

    String[count] = '\0';

     //if topic is 1.
     if (strcmp(String, "1") == 0)
    {
         currentPtr=Travels(':',startPtr);
         int answerone1 = (int)atoi(currentPtr);
         currentPtr=Travels(':',currentPtr);
         int answertwo2 = (int)atoi(currentPtr);
         currentPtr=Travels(':',currentPtr);
         int answerthree3 = (int)atoi(currentPtr);
         currentPtr=Travels(':',currentPtr);
         int answerfour4 = (int)atoi(currentPtr);
         currentPtr=Travels(':',currentPtr);
         int answerfive5 = (int)atoi(currentPtr);

         t1q1.push_back(answerone1);
         t1q2.push_back(answertwo2);
         t1q3.push_back(answerthree3);
         t1q4.push_back(answerfour4);
         t1q5.push_back(answerfive5);
    }

    if (strcmp(String, "2") == 0)
    {
        currentPtr=Travels(':',startPtr);
        int answerone1 = (int)atoi(currentPtr);
        currentPtr=Travels(':',currentPtr);
        int answertwo2 = (int)atoi(currentPtr);
        currentPtr=Travels(':',currentPtr);
        int answerthree3 = (int)atoi(currentPtr);
        currentPtr=Travels(':',currentPtr);
        int answerfour4 = (int)atoi(currentPtr);
        currentPtr=Travels(':',currentPtr);
        int answerfive5 = (int)atoi(currentPtr);

        t2q1.push_back(answerone1);
        t2q2.push_back(answertwo2);
        t2q3.push_back(answerthree3);
        t2q4.push_back(answerfour4);
        t2q5.push_back(answerfive5);
    }

     if (strcmp(String, "3") == 0)
     {
        currentPtr=Travels(':',startPtr);
        int answerone1 = (int)atoi(currentPtr);
        currentPtr=Travels(':',currentPtr);
        int answertwo2 = (int)atoi(currentPtr);
        currentPtr=Travels(':',currentPtr);
        int answerthree3 = (int)atoi(currentPtr);
        currentPtr=Travels(':',currentPtr);
        int answerfour4 = (int)atoi(currentPtr);
        currentPtr=Travels(':',currentPtr);
        int answerfive5 = (int)atoi(currentPtr);

        t3q1.push_back(answerone1);
        t3q2.push_back(answertwo2);
        t3q3.push_back(answerthree3);
        t3q4.push_back(answerfour4);
        t3q5.push_back(answerfive5);
    }

        currentPtr=0;
} 

МОЙ ГЛАВНЫЙ

  char Lines1[256];
        int count1 = 0;

        ifstream resultfile("results.txt");
        if (resultfile.is_open())
        {
            do
            {
            resultfile.getline(Lines1, 256);
            startPtr = Lines1;
            checkForAnswers(startPtr);
            count1++;
            }while(resultfile.eof() == false);
        resultfile.close();
        }


    int mycount;
    cout<< "\n";
    cout<< "TABULATION RESULTS\n";
    cout<< "------------------\n";
    cout<< "Topic 1, Question 1\n";
    mycount = (int) count (t1q1.begin(), t1q1.end(), 1);
    cout<< "Option 1: "<< mycount << " time(s)\n";

Надеюсь, вы, ребята, сможете мне помочь. Заранее спасибо тем, кто помог! :)

1 Ответ

4 голосов
/ 04 февраля 2012

В вашем коде count относится к локальной переменной count, которая имеет тип int и поэтому не может использоваться в качестве функции. Вам следует назвать переменную как-нибудь еще или обратиться к функции, используя ее полное имя std::count.

Также убедитесь, что вы #include <algorithm> (и у вас есть соответствующее объявление using, если вы идете по пути переименования переменной и вызова функции с использованием ее безусловного имени).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...