2011-02-26 4 views
1

나를 난처한 상황에 빠진이없는 그 :의 일치 기능 fstream 라이브러리에서 가져 오기 기능을 사용하려고 내가 주에 두 개의 오류를 받고 있어요

  • "잘못된 초기화

    1. "통화에 대해 일치 기능 없음 " 'int *'유형의 임시 유형에서 'int &'유형의 비 const 참조 "

    누구든지 손을 빌릴 수 있습니까? 감사!

    #include "header.h" 
    
    using namespace std; 
    
    int main() 
    { 
        int grade; 
        int list[8]; 
        ifstream inData; 
        ofstream outData; 
    
        inData.open("Ch9_Ex4Data.txt"); 
    
        if (!inData) 
        { 
         cout << "Cannot open the input file." 
          << endl; 
          return 1; 
        } 
    
        outData.open("DataOut.txt"); 
    
        inData.get(grade); // << ERROR 1 HERE 
    
        while (inData) 
        { 
         input(inData, outData, grade, list); // << ERROR 2 HERE 
        } 
    
        output (outData, list) 
    
        return 0; 
    } 
    
  • 답변

    1

    오류 1 inData.get은() int를하지 않기 때문에, 당신은

    grade = inData.get(); 
    

    을해야하고 목록이 실제로있는 int *가 아닌 입력에서 네 번째 매개 변수 그래서 INT 때문에 두 번째입니다()는 int *가 아니고 int 여야합니다. &

    0

    가능한 int []

    #ifndef HEADER_H_INCLUDED 
    #define HEADER_H_INCLUDED 
    
    #include <iostream> 
    #include <iomanip> 
    #include <fstream> 
    #include <cctype> 
    #include <cstdlib> 
    
    using namespace std; 
    
    void extern input(ifstream&, ofstream&, int&, int&); 
    
    
    
    #endif // HEADER_H_INCLUDED 
    

    메인 헤더는 INT & 아니다. int &은 정수에 대한 참조입니다. int list [8]은 8 개의 정수 배열입니다. 그것들은 같은 것이 아닙니다.

    0

    첫 번째 오류는 char 또는 char * 대신 int를 전달하는 것입니다. GET 프로토 타입은 아래를 참조하십시오 : 두 번째 오류에 대한

    istream::get 
    
    public member function 
    int get(); 
    istream& get (char& c); 
    istream& get (char* s, streamsize n); 
    istream& get (char* s, streamsize n, char delim); 
    istream& get (streambuf& sb); 
    istream& get (streambuf& sb, char delim); 
    

    , 함수가 INT &을 기대하고 위치를 잘못 INT의 배열을 전달하고 있습니다.

    관련 문제