#c
#c
Вопрос:
int x;
float f;
std::string s = "3.7";
std::istringstream is(s);
is >> x >> f;
почему результат ‘x’ и ‘f’ равен 3 и 0.7?
когда я использую
is >> f;
результат ‘f’ равен 3.7.
Комментарии:
1.
std::istringstream is(".7"); is>>f;
Ответ №1:
Istreamstream извлекает из потока столько символов, сколько >/» rel=»nofollow»>поместится в целевой тип данных (см. Арифметические типы). Другим условием остановки будет символ пробела.
Итак, если бы вы изменили свой код на следующий:
int x;
char c;
int f;
std::string s = "3.7";
std::istringstream is(s);
is >> x;
is >> c;
is >> f;
std::cout << x << std::endl;
std::cout << c << std::endl;
std::cout << f << std::endl;
Это привело бы к следующему выводу:
3
.
7
Комментарии:
1. Если мой ответ помог вам, было бы неплохо, чтобы вы отметили его как правильный ответ.