将两个二维数组放入文本文件

时间:2018-11-21 19:19:41

标签: c++ arrays

我在获取代码时遇到了麻烦,该代码需要输入名字和姓氏的数组,以及另一个存储实验室成绩的数组。

我必须遵循的规则。

  1. 使用cin.getline()函数而不是cin,通过从用户获取输入来初始化2D char数组。这个2D数组保存着所有五名学生的姓名记录,每行对应一位学生。

  2. 使用rand()函数初始化2D int类型数组以获取实验室成绩,且不超过10。此2D数组持有所有学生/实验室中总共4个实验室的分数/

  3. 最后以以下格式将数据写入文本文件,其中第一行应按原样写入: 示例:

Name1 Lname1 7 6 3 5

Name2 Lname2 10 2 6 7

Name5 Lname5 6 5 4 3

到目前为止,这是我的代码:

#include <fstream>
#include <iostream>
#include <cstdlib>
using namespace std;

int main()
{
    ofstream fout, fin;
    char lab_names[5][2];
    int lab_grades[5][4];
    fout.open("lab_grade.txt",ios::app);
    fin.open("lab_grade.txt",ios::app);

    for(int i=0; i<4; i++)
    {
        for(int k=0; k<5; k++)
        {
            if(lab_names[i][k]==lab_names[0][0])
            {
                cin.get(lab_names[0][0]);
            }
            if(lab_names[i][k]==lab_names[0][1])
            {
                cin.get(lab_names[0][1]);
            }
            if(lab_names[i][k]==lab_names[1][0])
            {
                cin.get(lab_names[5][2]);
            }
            if(lab_names[i][k]==lab_names[1][1])
            {
                cin.get(lab_names[5][2]);
            }
            if(lab_names[i][k]==lab_names[2][0])
            {
                cin.get(lab_names[5][2]);
            }
            if(lab_names[i][k]==lab_names[2][1])
            {
                cin.get(lab_names[5][2]);
            }
            if(lab_names[i][k]==lab_names[3][0])
            {
                cin.get(lab_names[5][2]);
            }
            if(lab_names[i][k]==lab_names[3][1])
            {
                cin.get(lab_names[5][2]);
            }
            if(lab_names[i][k]==lab_names[4][0])
            {
                cin.get(lab_names[5][2]);
            }
            if(lab_names[i][k]==lab_names[4][1])
            {
                cin.get(lab_names[5][2]);
            }
            else
            {
                lab_grades[i][k]=rand()%10+1;
            }

        }
        cout<<"\n";
    }
                fout<<lab_grades;
            fout.close();
            return 0;
}

有人可以帮我解决这个问题吗?

当我使用getline时,它会引起一些问题,甚至不允许程序尝试运行。

0 个答案:

没有答案