拆分一个字符串来检查c ++中的第一个字符

时间:2013-02-16 01:04:27

标签: c++ string cin

我需要拆分一个字符串,即(string)(int)(string)(int)。我有这个,一直持续到第一个字符串是'#'。但每当我想输入'#'来完成while时,我必须输入整个字符串,#(int)(string)(int)。我怎么能编码它所以我只需要输入#来完成而不是整个字符串? 这是我的代码:

void afegirEquips(EquipLliga & e) {
// Pre: --
// Post: Afegeix els equips entrats per teclat amb els seus gols al vector d'equips i calcula els seus punts

    string equipA, equipB;
    int golsA=0, golsB=0, n=0, cerca;
    e.n=0;
    cin >> equipA;
    cin >> golsA >> equipB >> golsB;          // Entra el primer equip per poder comprobar la condicio del 'while'
    while(equipA!=FI) {
        if(e.n>0) {
            cin >> equipA;
            cin >> golsA >> equipB >> golsB;      // Entra tots els equips menys el primer
        }
        cerca=cercaEquip(e,equipA);
        int posA=0;
        if(cerca==-1) {                      // Guarda la informacio del primer equip entrat i actualitza els gols i punts
            e.t[n].nomEquip=equipA;          // en el cas que l'equip sigui nou a la llista d'equips
            e.t[n].golsf=golsA;
            e.t[n].golsc=golsB;
           if(golsA>golsB) e.t[n].punts=e.t[n].punts+3;
           if(golsA<golsB) e.t[n].punts=e.t[n].punts;
           if(golsA==golsB) e.t[n].punts=e.t[n].punts+1;
            e.n++;
            n++;
        }
        else {                                              // Guarda la informacio del primer equip entrat i actualitza els gols i punts
            e.t[cerca].golsf=e.t[cerca].golsf+golsA;        // en el cas que l'equip ja existeixi a la llista d'equips
            e.t[cerca].golsc=e.t[cerca].golsc+golsB;
            if(golsA>golsB) e.t[cerca].punts=e.t[cerca].punts+3;
            if(golsA<golsB) e.t[cerca].punts=e.t[cerca].punts;
            if(golsA==golsB) e.t[cerca].punts=e.t[cerca].punts+1;
        }
        cerca=cercaEquip(e,equipB);
        int posB=0;
        if(cerca==-1) {                                     // Guarda la informacio del segon equip entrat i actualitza els gols i punts
            e.t[n].nomEquip=equipB;                         // en el cas que l'equip sigui nou a la llista d'equips
            e.t[n].golsf=golsB;
            e.t[n].golsc=golsA;
            if(golsA>golsB) e.t[n].punts=e.t[n].punts;
            if(golsA<golsB) e.t[n].punts=e.t[n].punts+3;
            if(golsA==golsB) e.t[n].punts=e.t[n].punts+1;
            e.n++;
            n++;
        }
        else {                                              // Guarda la informacio del segon equip entrat i actualitza els gols i punts
            e.t[cerca].golsf=e.t[cerca].golsf+golsB;        // en el cas que l'equip ja existeixi a la llista d'equips
            e.t[cerca].golsc=e.t[cerca].golsc+golsA;
            if(golsA>golsB) e.t[cerca].punts=e.t[cerca].punts;
            if(golsA<golsB) e.t[cerca].punts=e.t[cerca].punts+3;
            if(golsA==golsB) e.t[cerca].punts=e.t[cerca].punts+1;
        }
    }
}

不介意其余的代码,重要的只是cin。有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您的循环应该更改,以便您在检查equipA后只读取其他输入。

  cin >> equipA;
  while(equipA!=FI) {
      cin >> golsA >> equipB >> golsB;
      //...
      cin >> equipA;
  }