我需要拆分一个字符串,即(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。有什么想法吗?
答案 0 :(得分:2)
您的循环应该更改,以便您在检查equipA
后只读取其他输入。
cin >> equipA;
while(equipA!=FI) {
cin >> golsA >> equipB >> golsB;
//...
cin >> equipA;
}