- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
好吧,我已经两次遇到问题的臭名昭著的代码项目已基本重新格式化。现在,它看起来像这样:
#include <iostream>
#include <string>
#include <fstream>
using namespace std;
struct Course
{
string name;
double grade;
int block;
};
Course enter_course()
{
Course foo;
cout << "What is the name of the course you wish to enter?\n";
cin >> foo.name;
cout << "What block is " << foo.name << " ?\n";
cin >> foo.block;
cout << "What is your current grade as a percent?";
cin >> foo.grade;
return foo;
}
void display_courses(Course courseList[10], int courseCount)
{
for (int i=0; i<courseCount; i++){
cout << i+1 << "\t" << courseList[i].name
<< "\t\tBlock: " << courseList[i].block
<< "\tGrade: " << courseList[i].grade << "%" << endl;
}
}
double get_gpa(Course courseList[10], int courseCount)
{
double gradePoints;
double total = 0.0;
for (int i=0; i<courseCount; i++){
if (courseList[i].grade < 100){
gradePoints = 4;
}
if (courseList[i].grade < 90){
gradePoints = 3;
}
if (courseList[i].grade < 80){
gradePoints = 2;
}
if (courseList[i].grade < 70){
gradePoints = 1;
}
if (courseList[i].grade < 90){
gradePoints = 0;
}
total += gradePoints;
}
return total*1.0/courseCount;
}
void fileOutput()
{
ofstream outputFile;
outputFile.open("userGrades.txt");
outputFile << myCourses[10] << endl;
outputFile.close();
cout << "Grades saved to file!" << endl;
}
void display_options()
{
cout << "1. Exit\n";
cout << "2. Enter a Course\n";
cout << "3. Display Courses\n";
cout << "4. Display GPA\n";
cout << "5. Request a text file output\n";
cout << "\n\n";
}
int main()
{
bool exit=0;
int option;
int courseCount=0;
Course myCourses[10]; //nobody should ever take more than 10 courses!
while (exit == 0)
{
cout << "GradeBook 2.0\n";
display_options();
cout << "Enter a command.\n";
cin >> option;
switch (option)
{
case 1:
exit = 1;
break;
case 2:
myCourses[courseCount] = enter_course();
courseCount++;
break;
case 3:
display_courses(myCourses, courseCount);
break;
case 4:
cout << get_gpa(myCourses, courseCount) << endl;
break;
case 5:
fileOutput();
break;
}
}
return 0;
}
但是,在 fileOutput() 函数中,同一行代码我遇到了这些错误:
错误 C2065:“我的类(class)”:未声明的标识符IntelliSense:标识符“myCourses”未定义
我唯一能理解的是我需要在别处声明 myCourses,但我不知道如何声明。
有人认为他们可以解决这个问题吗?如果是这样,请编译代码并查看。此外,get_gpa 函数似乎无法正常工作,如果您也可以查看一下。
最佳答案
您的 Course 类没有 ostream 运算符,因此您不能在这一行中调用该运算符:
outputFile << myCourses[10] << endl;
您可以尝试删除该行并放入:
display_courses(myCourses,courseCount)
但遗憾的是打印到 cout
。因此,您确实需要重写 display_courses 以获取 ostream&
参数并输出到它,而不是 cout
。
关于c++ - 数组 C++ 的 Ofstream 文本编写问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20673758/
我想在一个函数中打开一个文件,将打开的文件对象返回给 main,并在另一个函数中使用它函数来填充文件。编译器似乎告诉我,我正在尝试访问 iostream 的私有(private)成员。有没有办法做到这
我最近写了一个记录器类。编译这段代码时: std::ofstream *stream = new std::ofstream; stream->open( log_file_name.c_str()
我有以下测试代码,其中有一个参数 fS,它是 ofstream 的容器: #include #include #include #include int
我正在尝试实现一个记录器,它可以注册到多个流,如 ostringstream、ofstream 等。我试图实现这样的功能 void register_stream(std::ostream& a);
我有一个在线程上写入文件的类 class A{ public: void writeToFile(ofstream& outFile, obj &a) { //...
我有以下代码 void _log_message(const char* fmt, ...) { va_list arg; ofstream logfile; cout << "Open Lo
我刚刚开始阅读如何打开和编辑文件。使用 ifstream 时,如果文件不存在,则不会创建它。 引用下面的代码,条件 (!outfile) 何时为假,就好像文件不存在一样,构造函数将简单地创建它,因此总
#include #define LOGFATAL(msg) log(0, msg) std::ofstream *logst = NULL; void log(int sev, char *msg
我在使用 ofstream 时遇到问题一次将两个不同的输出写入两个不同的文件。程序编译运行正常,并向p1output.txt写入数据,但是当我打开p2output.txt时,除了第一行内容外是空白的:
我有一个“资源模块”类来管理我的应用程序的所有资源,它主要从一个包含所有内容的文件“RESOURCES.DAT”中读取。 从文件中请求新数据的所有对象都通过 ResourceModule,因此我可以管
我遇到流问题,程序无法打开我要写入的文件。最小完整可变代码如下: #include #include using namespace std; int main(){ string roo
我已经研究了好几个小时了,我只知道答案很简单。似乎无论我做什么我都无法打开文件。这是一个多类程序,所以在标题中我有 #include #include class A{ string path
所以我想写一个可以像这样使用的缩进输出类: Debug f; f.open("test.txt"); f }' and '') ofs #include using namespace std;
大家好... 抱歉我的英语不好,但是会说西类牙语... 这周,为了这个proyect的学习和工作,我想创建一个软件来制作文件(.us)... 示例 char name[50]; //Or string
我不想在 main() 中构造 ofstream。这是我所做的,但它没有编译: #include using namespace std; class test { private: ofs
谁能告诉我这是怎么回事? #include #include #include #include #include class writeManager { std::vector
我有一个 C++ 类,它将其数据写出到二进制 std::ofstream。该类将数据存储为 boost:shared_array 但我已经消除了这个问题。问题出在 ofstream 上对 write(
在我的程序中,我的 dataout: void outfile 没有写入文件,任何人都可以找出原因吗? using namespace std; #include #include #include
我想在文件上写点东西。但它只是没有像它必须假设的那样编写。 void main() { int accno; char name[20]; float deposit;
我遇到了一个奇怪的问题。我有两个函数,它们都有一个通过引用传递的 ofstream。但是,当我调用第二个函数时,正在打印第一个函数的一部分。 这是第一个函数: void GamePlay::dealD
我是一名优秀的程序员,十分优秀!