2012-02-04 3 views
-1

내 프로그램에 ' '이라는 숫자가 함수로 사용될 수 없다는 오류가 있습니다.카운트를 함수로 사용할 수 없습니다.

그것은 내가 이미 네임 스페이스를 사용하여 표준 알고리즘을 포함 한 아래 라인

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

를 가리키는하지만 여전히 오류를 보여줍니다.

내가 내 벡터 t1q1와 함께 할 것입니다 아래의 코드는 프로그램이 파일을 읽고 IT를에 저장할 파일에 읽고 특정 정보를 추출하여 벡터로 다시

MY 기능을 밀어 수 있습니다 VARIABLES 내 주요

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"; 

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; 
} 

너희들이 나를 도울 수있을 것입니다 바랍니다. 도움을 주신 분께 미리 감사드립니다! 코드 count에서

+2

오류를 나타내는 완전한 컴파일 가능한 예제를 게시하십시오. –

+0

'count'에는 두 가지 버전이 있습니다 : http://www.sgi.com/tech/stl/count.html –

+0

@PaulR : C++에는 오직 하나의'count' 만 있습니다. –

답변

3

:)은 int을 입력함으로써 함수로서 이용 될 수있는 로컬 변수 count을 말한다. 변수 이름을 다른 이름으로 지정하거나 규정 된 이름 std::count을 사용하여 함수를 참조해야합니다.

또한 #include <algorithm> (변수 이름 바꾸기 경로를 살펴보고 규정되지 않은 이름을 사용하여 함수를 호출하면 적절한 using 선언이 있어야 함).

+0

을 std :: count로 변경하면 작동합니다. 고마워. – Andres

관련 문제