gpt4 book ai didi

c++ - 通过函数传递 ifstream 文件时出错

转载 作者:行者123 更新时间:2023-11-28 02:43:14 25 4
gpt4 key购买 nike

这是我的代码:

#include <string>
#include <iomanip>
#include <fstream>
#include <iostream>
#include <cstring>
#include <cctype>
using namespace std;

// include .h file that holds function ot write header
#include "WriteE3RptHdr.h"

// declare global constant
const int NUM_QTS = 15;

// declare struct to hold info on student and answers
struct StudRpt {
char answers[NUM_QTS];
string firstName;
string lastName;
char answerKey[NUM_QTS];
string testKey;
string testData;
};

StudRpt Data;

// function prototypes
StudRpt StoreAnswerKey(StudRpt Data, ifstream inFile);
StudRpt StoreStudData(StudRpt Data, ifstream inFile);
void WriteRpt(StudRpt Data, ofstream& outFile);

int main()
{
int correct;
int inforrect;
int score;
// delcare and open file streams
ifstream inFile;
ofstream outFile;
inFile.open("in.data");
outFile.open("out.data");

// call function included from .h file
WriteRptHdr(outFile);

StoreAnswerKey(Data, inFile);

// priming read
StoreStudData(Data, inFile);

while (inFile) {
StoreStudData(Data, inFile);
WriteRpt(Data, outFile);
}
inFile.close();
outFile.close();
}
//----------------------------------------------------
StudRpt StoreAnswerKey(StudRpt Data, ifstream inFile) {
int i;
for (i = 0; i < NUM_QTS; i++) {
inFile >> Data.answers[i];
}

return Data;
}

函数 WriteRptHdr 包含在 .h 文件中。它通过一个函数传递一个 ofstream——我已经测试过了,它工作得很好。但是 ifstream inFile 不起作用(该程序旨在读取答案键,并将它们与学生给出的答案进行比较。我无法从正在传递的 ifstream 中读取答案键)

我正在使用 Pico。这是我得到的错误:

In function 'int main()':
Tester.cxx:48: note: synthesized method 'std::basic_ifstream<char, std::char_traits<char> >::basic_ifstream(const std::basic_ifstream<char, std::char_traits<char> >&)' first required here
Tester.cxx:48: error: initializing argument 2 of 'StudRpt StoreAnswerKey(StudRpt, std::ifstream)'

最佳答案

您不能按值传递流,因为流是不可复制的。

相反,传递对流的引用(以及您的 StudRpt):

StudRpt StoreAnswerKey(StudRpt& Data, ifstream& inFile);
StudRpt StoreStudData(StudRpt& Data, ifstream& inFile);

关于c++ - 通过函数传递 ifstream 文件时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25249593/

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