我有一个带有字符(成绩)的输入文件,我正在尝试使用函数和输入文件将它们输入到数组中。 我没有相信我正确地声明/传递输入文件(iFile)。任何有关我的sytax和参数的帮助都会很棒。
错误(S): ' std :: basic_streambuf< _CharT,_Traits> :: basic_streambuf(const std :: basic_streambuf< _CharT,_Traits>&)[with _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;
}
答案 0 :(得分:2)
通过引用传递std::ifstream
和std::ofstream
。
他们没有复制构造函数。
void readInput(char gradeArray[][3], ifstream& iFile);
void spitOutpt(char gradeArray[][3], ifstream& iFile);
建议清理
您使用ifstream
作为spitOutpt
的参数似乎不对。也许你的意思是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;
}