1

我需要拆分一个字符串,它是 (string) (int) (string) (int)。我有这个一直持续到第一个字符串是'#'。但是每当我想输入“#”来结束这段时间时,我必须输入整个字符串,# (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。任何的想法?

4

1 回答 1

2

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

  cin >> equipA;
  while(equipA!=FI) {
      cin >> golsA >> equipB >> golsB;
      //...
      cin >> equipA;
  }
于 2013-02-16T01:11:42.973 回答