2017-10-10 1 views
-1

파일로 데이터를 출력해야하는 일부 C++ 숙제에서 작업 한 다음 데이터를 다시 읽어서 숫자와 평균의 합계를 구하십시오. I 출력의 첫 번째 줄은 사용자에게 다시 읽고 함께 추가 싶은오버로드 된 파일 오류가 발생 했습니까?

#include <iostream> 
#include <fstream> 
using namespace std; 

int main() { 
    ofstream outfile; 
    outfile.open("test.txt"); 
    outfile << "28 36 20 36 2 81 12 47/n "; 
    outfile << "62 1 29 32 923 39 21 12/n "; 
    outfile << "67 23 83 2 10 34 755 23/n "; 
    outfile << "24 29 47 7 29 86 426 9/n "; 
    outfile << "1 36 76 24 628 12 8 28/n "; 
    outfile << "55 29 63 825 51 4 739 34/n "; 
    outfile << "38 29 16 923 27 2 84 28/n "; 
    outfile.close(); 

ifstream infile; 
infile.open("test.txt"); 
ifstream read("test.txt"); 
int num, sum; 
read >> num >> sum; 

if (read.is_open()) 
{ 
    string Array_1[8]; 
    for (int i = 0; i <= 8; i++) 
    { 
     read >> Array_1[i]; 
     while (read.good()) 
     { 
      count++; 
      sum += num; 
      double avg = num/8; 
      cout << "Total: " << num; 
      cout << " Average: " << avg; 
     } 
    } 

이 지금까지 내 코드입니다. 그러나 내 카운터 옆에 오류가 발생했습니다 : 오버로드 된 함수에 대한 참조를 확인할 수 없습니다; 그걸 부르다 니요?

저는 여전히 C++에 대해 매우 익숙합니다. 어떤 아이디어로 그것을 고치는 법? 고맙습니다.

+2

주제가 맞지 않지만 8 개의 요소 배열에 대해 9 번 반복합니다. – chris

+2

주제에 대해 조금 더 자세히 설명해 드리겠습니다.'namespace std;를 사용하면 활발히 여러분을 아프게하고 오류 메시지를 악화시킵니다. – chris

+0

나는 namespace std를 사용하는 것을 제외하고는 아무것도 사용하지 않았다. 우리 교수는 아직 우리에게 가르쳐주지 않았다. 나는 다른 질문에 다른 사람들에게 똑같은 조언을 해줬지만 실제로 해결 방법을 모르겠다. –

답변

2

당신은

using namespace std; // don't ever do that! 
count++; 

그래서 컴파일러가 여기에 count을 이해 어떻게 생각 count를 선언하지만 통해이 기호를 사용하지 못했다? 실제로는 전체적으로 표시되는 namespace에 해당 이름의 심볼이 있음이 밝혀졌습니다. 오버플로 된 함수 템플릿 인 std::count()입니다. 이것은 이름과 일치하는 유일한 후보이므로 컴파일러는 여기에서이 속성을 사용하려고 시도하지만 작동하지 않으므로 오류가 발생합니다.

using namespace std;과 같은 문제와 그로 인한 이해할 수없는 오류 메시지를 피하려면 다음을 수행하십시오.