从具有特定格式的txt文件读取到c ++中的变量

时间:2015-11-08 16:29:31

标签: c++ string file-io ifstream

我在分配时遇到困难,我收到了一个.txt文件,其中包含以下格式的数据:

Michael Schumacher
Allemagne; 250 91
1994 1995 2000 2001 2002 2003 2004
Benetton; Ferrari;
Fernando Alonso
Espagne; 132 21
etc...

我需要阅读此文件并将数据汇集到适当的变量中:

full name                                   ----> to string
country; numberOfRace numberOfVictories     ----> to string; to int, to int
all years separated by spaces               ----> to an array
Sponsor1; [Sponsor2(optional)];             ----> to an array
full name2.....

我花了3天的时间尝试使用getlines和file>>的混合物正确分配数据。并且无法设法使阵列正确,这是我最近的尝试:

for (int i = 0; i < NPILOTES; i++) {
        getline(fichier, liste.pilotes[i].nom);
        getline(fichier, liste.pilotes[i].pays, ';');

        fichier >> liste.pilotes[i].nCourses;
        fichier >> liste.pilotes[i].nVictoires;
        fichier.ignore();

        // liste des annees
        string line;
        getline(fichier, line);

        int position = 0, compteur = 0;     
        while ((position + 4) > line.length()) {    // doesn't work, nothing gets in the array
            line.substr(position, 4) =
              liste.pilotes[i].annees.liste[compteur];
            position += 5;
            compteur++;
        }
        liste.pilotes[i].annees.n = compteur;

        // liste des constructeurs automobiles
        getline(fichier, line);
        //????
    }

我的班级要求变量名称是法语,但它不应该太难理解(pays = country,annees = years,constructeur = sponsor)。请记住它是第一年的编程课程,因此我不允许使用像对象和向量这样的高级概念......

提前感谢您的意见

0 个答案:

没有答案