【发布时间】:2020-03-25 18:58:03
【问题描述】:
我只是在学习结构,有点卡住了。我试图从包含课程信息(课程、时间、日期等)的文件中提取信息但是到目前为止,我的代码唯一输出到新创建的文件中的只是我写的 cout 文本。关于如何解决这个问题的任何想法? 到目前为止,这是我的代码:
#include <iostream>
#include <fstream>
#include <string>
#include <iomanip>
using namespace std;
//Holds all the class information
struct Course{
string courseName;
string courseNum;
string courseDay;
string courseTime;
string courseLoc;
};
//Extracts data from the file with the course information
Course getInfo(ifstream &inFile);
//Creates a file with the data from 'getInfo'
void writeInfo(ofstream &outFile, Course course);
int main(){
ifstream inFile; //link to input file
ofstream outFile; //link to output file
Course course; //holds all course info
inFile.open("Courses.txt"); //opens textfile
outFile.open("Courses.dat"); //creates new file
course = getInfo(inFile); //priming read
while (inFile) {
writeInfo(outFile, course); //write info to output file
course = getInfo(inFile); //get info from input file
}
inFile.close();
outFile.close();
}
Course getInfo(ifstream &inFile){
Course course;
inFile >> course.courseName >> course.courseNum >> course.courseDay;
inFile >> course.courseTime >> course.courseLoc;
return course;
}
void writeInfo(ofstream &outFile, Course){
Course course;
outFile << "Class: " << course.courseName << " Class ID: " << course.courseNum << " Meeting Days: " << course.courseDay << " Class Time: " << course.courseTime << " Class Location: " << course.courseLoc << endl;
}
【问题讨论】:
-
这不是您将变量传递给函数的方式。也许在尝试继续其他事情之前回顾那一章。您正在
writeInfo函数中创建一个新的空Course并将其打印到您的文件中。所以很明显它会是空的。 -
就像将
void writeInfo(ofstream &outFile, Course){ Course course; outFile << ... }更改为void writeInfo(ofstream &outFile, Course course){ outFile << ...}一样简单,我认为这是错字。
标签: c++