2013-02-16 78 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