我在获取代码时遇到了麻烦,该代码需要输入名字和姓氏的数组,以及另一个存储实验室成绩的数组。
我必须遵循的规则。
使用cin.getline()函数而不是cin,通过从用户获取输入来初始化2D char数组。这个2D数组保存着所有五名学生的姓名记录,每行对应一位学生。
使用rand()函数初始化2D int类型数组以获取实验室成绩,且不超过10。此2D数组持有所有学生/实验室中总共4个实验室的分数/
最后以以下格式将数据写入文本文件,其中第一行应按原样写入: 示例:
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时,它会引起一些问题,甚至不允许程序尝试运行。