2016-09-02 20 views
1

入力ファイルに文字(グレード)があり、関数と入力ファイルを使用して配列に入力しようとしています。 私は信じられません入力ファイル(iFile)を正しく宣言/渡しています。私のsytaxとパラメータの助けを借りれば素晴らしいだろう。入力ファイルを使用して関数に渡す

エラー(S): 「のstd :: basic_streambuf < _CharT、_Traits> :: basic_streambuf(CONSTのstd :: basic_streambuf < _CharT、_Traits> &)_CharT = CHAR有します。 _Traits = STD :: char_traits]」を参照することにより

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

void readInput(char gradeArray[][3], ifstream iFile); 
void spitOutpt(char gradeArray[][3], ifstream iFile); 

int main() 
{ 
    ifstream iFile; 
    iFile.open("grades.txt"); 
    char gradeArray[5][3]; 

    readInput(gradeArray, iFile); 
    spitOutpt(gradeArray, iFile); 

    return 0; 
} 

void readInput(char gradeArray[][3], ifstream iFile) 
{ 
    for(int r = 0; r < 5; r++) 
     { 
      for(int c = 0; c < 3; c++) 
      { 
      iFile >> gradeArray[r][c]; 
      } 
     } 

    return; 
} 

void spitOutpt(char gradeArray[][3], ifstream iFile) 
{ 
    cout << "All Grades" << endl; 
    cout << left << setw(10) << "Student"; 
    cout << left << setw(10) << "English"; 
    cout << left << setw(10) << "History";  
    cout << left << setw(10) << "Math"; 
    cout << endl; 


    for(int r = 0; r < 5; r++) 
     { 
     cout << "#" << left << setw(10) << r; 
      for(int c = 0; c < 3; c++) 
      { 
      cout << left << setw(10) << gradeArray[r][c]; 
      } 
     cout << endl; 
     } 

    return; 
} 

答えて

2

std::ifstreamstd::ofstreamプライベートです。

コピーコンストラクタはありません。

void readInput(char gradeArray[][3], ifstream& iFile); 
void spitOutpt(char gradeArray[][3], ifstream& iFile); 

提案クリーンアップ

ためspitOutptの引数としてifstreamのご使用はないと思えます。おそらく、あなたはそれがofstreamであることを意味しました。その後、

void spitOutpt(char gradeArray[][3], ofstream& oFile); 

とにmainを変更:ありがとう

int main() 
{ 
    ifstream iFile; 
    iFile.open("grades.txt"); 
    char gradeArray[5][3]; 

    readInput(gradeArray, iFile); 


    ofstream oFile; 
    oFile.open("grades-out.txt"); 
    spitOutpt(gradeArray, oFile); 

    return 0; 
} 
+0

。何故ですか? 「コピーコンストラクタ」と「値渡し/参照」が本当に意味することは決して実際には理解されていません。 – Stubbsy

+0

@Stubbsy、どうして? –

+0

@R Sahu、非常に基本的な質問を申し訳ありません。これで私の第2週だけ。 &はなぜ機能しますか?私はその使用を理解していますが、それは本当の定義ではありません。再度、感謝します。 – Stubbsy

関連する問題