从.txt文件中读取字符串和整数到数组中

时间:2014-12-06 02:32:26

标签: c++ arrays

我是一名新手程序员,我在练习中遇到了麻烦。我需要创建一个程序,从名为" students.txt"的.txt文件中读取学生信息(SSN,名字和姓氏,测试分数),然后使用四个全局并行数组来存储学生信息。我需要使用int数组来存储SSN,一个用于存储名字的字符串数组,一个用于存储姓氏的字符串数组,以及一个用于存储分数的双数组。这些行动包括列出学生的姓名。这样的信息究竟如何出现:

   SSN     Last-Name  First-Name Score
628130189  James,     Paul        92.0
237698211  Cook ,     Daniel      86.0
201895367  Garza,     Melessa     78.0
491066285  Barbara,   Jessica     62.0
168606868  Bruce,     Elizabeth   90.0 
378205732  Lee,       Sarah       91.5
118453900  Brian,     David       87.0
583192186  Garza,     Cody        92.0
226665118  Lewis,     Gage        78.0
175382843  Collins,   James       69.5
816231095  White,     Ann         88.5
376651608  Jackson,   Mark        72.0
508234567  Freeman,   Mark        86.0
763211099  William,   Jack        52.0
286204723  Rodriguez, John        69.5

但是,当然,.txt文件只是SSN名字的姓氏和分数未对齐并由逗号分隔。然后我必须使用" void"来显示得分最高的学生,然后是最低分和所有分数的平均分。我只是不知道如何让它首先读取文件并制作数据,以便将它组织成列。

另外......如果找不到文件,我必须立即报告错误信息并立即退出程序?否则,程序应显示如下主菜单,以允许用户完成列出的内容 操作

这是我到目前为止所拥有的:

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

void mainmenu();
/*
void sort_name();();
void sort_ssn();
void sort_score ();
*/
void average(); 
void lowest_score();
void highest_score();
void open_file();

const int totNum = 15; //my global variables
int ssn[totNum];
string fname [totNum];
string lname [totNum];
double score [totNum];

int main ()
{


    char choice;

    ifstream fin;
    fin.open("students.txt")

for (1=0; i <= totNum; i++)//this is where I'm stuck
{
     ?????



}
do
{   mainmenu(); //calling main menu funtion
    cin >> choice;
    cin.ignore (10, '\n'); //spacing
    switch(choice) // switch statment for multiple cases for flexibility
    {
        case 'l':
        case 'L':
        case '1': open_file(); break; 
        /*
        case 'h':
        case 'H':   
        case '2': highest_score(); break; 
        case 'o':
        case 'O':
        case '3': lowest_score(); break;
        case 'a':
        case 'A':
        case '4': average(); break;

        case 's':
        case 'S':   
        case '5': sort_ssn(); break; //operation 5-7 is a bonus work
        case 'n':
        case 'N':
        case '6': sort_name(); break;
        case 'c':
        case 'C': 
        case '7': sort_score();break;
        */
        case 'e':
        case 'E':   
        case '0': break;
        default: cout << "Wrong choice!" << endl; break;    
    }
    cout << endl;
}   while(choice != '0'); // && choice !='E' && choice!='e')    
}
void mainmenu() //output main menu
{
cout << "Main Menu (Assignment 8)" << endl;
cout << "1. List students' infromation (L)" << endl;
/*
cout << "2. Find the highest score (H)" << endl;
cout << "3. Find the lowest score (O)" << endl;
cout << "4. Calculate the average score (A)" << endl;

cout << "5. Sort students by SSN (S)" << endl;
cout << "6. Dort students by name (N)" << endl;
cout << "7. Sort students by score (C)" << endl;
*/
cout << "0. Exit" << endl;
cout << "Please select an option: ";
}

现在没有任何意义,但这就是为什么我迫切需要帮助...

0 个答案:

没有答案