cin.ignore(numeric_limits<streamsize>::max(), '\n');
Игнорирует всю строку.Но
cin.ignore(numeric_limits<streamsize>::max(), '=');
будет игнорировать все до тех пор, пока
1U = 1.2A
1U = 2.3B
1U = 3.4C
станет
1.2A
1U = 2.3B
1U = 3.4C
Теперь вы можете
cin >> temp;
Которыйбудет читать пропущенные пробелы 1.2 в temp
и остановится, как только найдет что-то, что не может быть double
.
A
1U = 2.3B
1U = 3.4C
, затем вы возвращаетесь к
cin.ignore(numeric_limits<streamsize>::max(), '=');
, в результате чего
2.3B
1U = 3.4C
и
cin >> temp;
захватывает 2,8, а затемповторите еще раз.
Код для этого может выглядеть как
while (cin.ignore(numeric_limits<streamsize>::max(), '=') &&
cin >> temp)
{
// use temp
}