2013-02-16 74 views
1

我需要分割一个字符串,它是(string)(int)(string)(int)。我有这个一直持续直到第一个字符串是'#'。但是,无论何时我想输入'#'来结束这段时间,我必须输入整个字符串#(int)(string)(int)。我如何编码它,所以我只需要输入#来完成,而不是整个字符串? 这是我的代码有:分割一个字符串来检查第一个字符在C++中

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。任何想法?

回答

2

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

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

是的!非常感谢我认为这比实际上困难得多! – 2013-02-16 01:18:09

+0

@ p.bosch:你非常欢迎。 – jxh 2013-02-16 01:19:48