Эй, ребята, я создал игру, в коде есть while(true)
и каждый раз, когда он получает в качестве входных данных новой строки, проблема в том, что если я написал первый раз abc
, а затем во втором цикле abcd
, а затем abc
он сохраняет последний d, Я пробовал str.clear()
, я попытался положить \0
в него, я попытался до str = "";
, я пробовал все, и его все равно то же самое.C++ Очистить струнные
Вот некоторые из кода:
std::string whoplayed;
int res = getPlayersNames();
if(res == -1)
return;
std::cout << "ok " << splayername << " please start: (Starting from south) S->N->S->N...." << std::endl;
std::string temp = "";
std::string playername = "";
while(true)
{
std::getline(std::cin,temp);
for(int i=0;i<(signed)temp.size();i++)
{
if(temp[i] != ':')
{
playername[i] = temp[i];
}
else break;
}
char c;
for(int i=0;i<(signed)temp.size() ; i++)
{
if(temp[i] == ':' && temp[i+1] == ' ')
{
c = temp[i+2];
break;
}
else
{
continue;
}
}
Это часть кода .. я не могу опубликовать все это .. когда я напечатать в третьем имя игрока цикле с входами ABC, ABCD, ABC (конечно с правильный формат, что я не нужно, как это) она сохраняет последний д
Укажите временное определение. – kvorobiev
Пожалуйста, включите короткий, самостоятельный, компилируемый пример. Предоставляемый вами код не показывает нам, в чем проблема. – zennehoy
Обновлено, это часть кода, который содержит проблему – MaxDevelop