В настоящее время я практикуюсь со строковыми потоками, чтобы извлечь значения из строки.В этом простом коде пользователь вводит имя и число (разделенные пробелом), эта строка сохраняется во «вводе».Затем он передается в «поток» и разделяет имя и номер, которые хранятся в «имя» и «номер».Затем номер выводится с помощью std :: cout.Этот процесс выполняется несколько раз с разными именами и номерами.
#include <sstream>
#include <iostream>
int main() {
std::string input;
std::stringstream stream;
std::string name;
double amount;
for (;;) {
std::getline(std::cin, input); // enter a name, a whitespace and a number
stream.str(input);
stream >> name >> amount; // problem here
std::cout << amount << std::endl;
}
return 0;
}
Проблема: в «сумме» сохраняется только номер первого введенного ввода.Номера следующих входов не будут храниться в «сумме» (сумма всегда имеет одинаковое число внутри).Может быть, есть кое-что, чего я не знаю о струнных потоках ...