Я пытаюсь изучить С++ со вчерашнего дня, и я использую этот документ: http://www.cplusplus.com/files/tutorial.pdf (стр. 32). Я нашел код в документе, и я его запустил. Я попытался ввести Rs 5.5 для цены и целое число для количества, а выход был равен 0. Я попытался ввести 5.5 и 6, и результат был верным.
// stringstreams
#include <iostream>
#include <string>
#include <sstream>
using namespace std;
int main ()
{
string mystr;
float price = 0;
int quantity = 0;
cout << "Enter price: ";
getline (cin,mystr);
stringstream(mystr) >> price;
cout << "Enter quantity: ";
getline (cin,mystr);
stringstream(mystr) >> quantity;
cout << "Total price: " << price*quantity << endl;
return 0;
}
Вопрос: Что именно делает команда mystring? Цитирование из документа:
"В этом примере мы получаем числовые значения со стандартного ввода косвенно. Вместо извлечения числовых значений непосредственно из стандартный ввод, мы получаем линии от стандартного ввода (cin) в string object (mystr), а затем мы извлекаем целочисленные значения из эту строку в переменную типа int (количество)."
Мое впечатление заключалось в том, что функция примет неотъемлемую часть строки и использует ее как входную.
(я точно не знаю, как задать вопрос здесь. Я также новичок в программировании) Спасибо.