Getline删除冒号并处理额外的行

时间:2016-04-15 14:22:49

标签: c++ getline

 struct studentinfo
  { 
     string name;
     CompClass class_taken;
     CompClass class_TA;
  };       

 struct CompClass {
    string class_num;
    string class_sem;
  };

将输入的输入信息如下所示......    和John.Smith:15:S13

我已将15(班级编号)和S13(班级学期)分开,但是希望将它们保留为一个名为Course的整个课程,而不是字符串num和字符串sem。但是,我不确定如何在这样做时摆脱冒号。我如何操作下面的代码,以便处理冒号问题?

while(getline(file_one, array[i].name, ':')){           
        getline(file_one,array[i].class_taken.num,':');
        getline(file_one,array[i].class_taken.sem,'\n');
        i++;
}

更新:我已将它们分开,现在我正在尝试将它们组合成一个字符串......但我的代码下面有什么问题。输出正在跳过一些行...

  for(int i=0; i<10; i++){
    string course="";
    string num;
    string sem;
    num = array[i].class_taken.class_num;
    sem = array[i].class_taken.class_sem;
    course += num;
    course += sem;
    array[i].class_taken.course = course;
    i++;
}   

0 个答案:

没有答案