我在 C++ 中的 OOP 中做错了什么
What did I do wrong in OOP in C++
我编写我的程序来显示学生资料
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int array_size = 500;
char * array = new char[array_size];
int position = 0;
ifstream fin("data.txt");
if(fin.is_open())
{
while(!fin.eof() && position < array_size)
{
fin.get(array[position]);
position++;
}
array[position-1] = '[=10=]';
for(int i = 0; array[i] != '[=10=]'; i++)
{
cout << array[i];
}
}
else
{
cout << "File could not be opened." << endl;
}
return 0;
}
这里是data.txt
Name : Napat Naraprapang
ID : 45608
Subject Credit Grade
Thai 1.0 4
Mathematics 1.0 4
Social Studies 1.0 4
Health and Physical Education 0.5 4
Thai Dance 0.5 3
Vocational Education and Tecnology 0.5 4
English 1.0 4
Advance Mathematics 2.0 4
Physics 1.5 3.5
Chemistry 1.5 3
Biology 1.5 4
Handball 0.5 4
Computer Project 1.0 4
English Reading Analysis 1.0 4
English for Information 0.5 4
我想计算gpa并显示在下面,我应该怎么做?
实际上,我第一次创建函数来计算 gpa 之前
for(int i = 0; array[i] != '[=12=]'; i++)
{
cout << array[i];
}
}
else
然后我编译的时候,一切都丢失了,我不知道我做错了什么?我该怎么办?
谢谢大家的回复!
- 首先,
/n
不是一个字符。 \n
是您需要的换行符。
getline(myfile.line)
是无效语句,因为 myfile
, a 是 ifstream
的对象,没有成员 line
.
改为:
std::getline(myfile,line);
我不确定这是否是唯一的错误,但我知道这一行:
getline(myfile.line);
应该是:
std::getline(myfile, line);
而'/n'
应该是'\n'
,假设你想按行分隔。
我编写我的程序来显示学生资料
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
int array_size = 500;
char * array = new char[array_size];
int position = 0;
ifstream fin("data.txt");
if(fin.is_open())
{
while(!fin.eof() && position < array_size)
{
fin.get(array[position]);
position++;
}
array[position-1] = '[=10=]';
for(int i = 0; array[i] != '[=10=]'; i++)
{
cout << array[i];
}
}
else
{
cout << "File could not be opened." << endl;
}
return 0;
}
这里是data.txt
Name : Napat Naraprapang
ID : 45608
Subject Credit Grade
Thai 1.0 4
Mathematics 1.0 4
Social Studies 1.0 4
Health and Physical Education 0.5 4
Thai Dance 0.5 3
Vocational Education and Tecnology 0.5 4
English 1.0 4
Advance Mathematics 2.0 4
Physics 1.5 3.5
Chemistry 1.5 3
Biology 1.5 4
Handball 0.5 4
Computer Project 1.0 4
English Reading Analysis 1.0 4
English for Information 0.5 4
我想计算gpa并显示在下面,我应该怎么做? 实际上,我第一次创建函数来计算 gpa 之前
for(int i = 0; array[i] != '[=12=]'; i++)
{
cout << array[i];
}
}
else
然后我编译的时候,一切都丢失了,我不知道我做错了什么?我该怎么办? 谢谢大家的回复!
- 首先,
/n
不是一个字符。\n
是您需要的换行符。 getline(myfile.line)
是无效语句,因为myfile
, a 是ifstream
的对象,没有成员line
.改为:
std::getline(myfile,line);
我不确定这是否是唯一的错误,但我知道这一行:
getline(myfile.line);
应该是:
std::getline(myfile, line);
而'/n'
应该是'\n'
,假设你想按行分隔。