我在 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

然后我编译的时候,一切都丢失了,我不知道我做错了什么?我该怎么办? 谢谢大家的回复!

  1. 首先,/n不是一个字符。 \n 是您需要的换行符。
  2. getline(myfile.line) 是无效语句,因为 myfile, a 是 ifstream 的对象,没有成员 line.

    改为:

    std::getline(myfile,line);
    

我不确定这是否是唯一的错误,但我知道这一行:

getline(myfile.line);

应该是:

std::getline(myfile, line);

'/n'应该是'\n',假设你想按行分隔。