gpt4 book ai didi

c++ - 使用输入文件并将其传递给函数

转载 作者:行者123 更新时间:2023-11-30 03:38:47 30 4
gpt4 key购买 nike

我有一个包含字符(成绩)的输入文件,我正在尝试使用函数和输入文件将它们输入到一个数组中。我不相信我正确地声明/传递了输入文件 (iFile)。对我的语法和参数的任何帮助都会很棒。

错误:'std::basic_streambuf<_CharT, _Traits>::basic_streambuf(const std::basic_streambuf<_CharT, _Traits>&) [with _CharT = char; _Traits = std::char_traits]' 是私有(private)的

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

最佳答案

通过引用传递 std::ifstreamstd::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;
}

关于c++ - 使用输入文件并将其传递给函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39299678/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com