Бесконечный ввод чисел в консоли

272
28 июля 2017, 02:30

Надо считать бесконечный ряд переменных типа double с консоли. Например, я ввожу:

100 500.20 800

жму Enter, и введенные значения записываются в массив. Как так сделать?

Answer 1

Например, что-то вроде этого:

for(;;)
{
    double n;
    cin >> n;
    // Что-то делаем
    // Если все введено - break;
}

Update

Если считывание из одной строки - то можно, например, так

string s;
getline(cin,s);  // Чтение строки ("до нажатия Enter")
istringstream is(s); // Строковый поток для чтения
double n;
while(is >> n)
{
    // Что-то делаем со считанными числами
}
Answer 2

Чтение до окончания ввода (в Linux Ctrl+D, в Windows — Ctrl+Z):

#include <iterator>
#include <iostream>
#include <vector>
int main()
{
    std::vector<double> v(std::istream_iterator<double>(std::cin), {});
    std::copy(std::begin(v), std::end(v), std::ostream_iterator<double>(std::cout, " "));
}

Чтение в строку до Enter с последующим чтением из строки:

#include <iterator>
#include <iostream>
#include <vector>
#include <string>
#include <sstream>
int main()
{
    std::string s;
    std::getline(std::cin, s);
    std::istringstream iss(s);
    std::vector<double> v(std::istream_iterator<double>(iss), {});
    std::copy(std::begin(v), std::end(v), std::ostream_iterator<double>(std::cout, " "));
}
READ ALSO
Объясните зачем нужен массив temp в примере!

Объясните зачем нужен массив temp в примере!

Подскажите, зачем в приведенном примере инициализируется локальный массив char temp[80] ? Массив не используется, но и объяснений нет никаких,...

279
OpenCV Error: Bad argument (The total number of matrix elements is not divisible by the new number of rows) in reshape

OpenCV Error: Bad argument (The total number of matrix elements is not divisible by the new number of rows) in reshape

Ситуация такая: Насколько я понял функция ниже возвращает cv::Mat по HWND окна, если брать HWND desktop или не менять размер исследуемого окна, то все...

387
Checks that jquery selectors are used in an efficient way

Checks that jquery selectors are used in an efficient way

Указанное в заголовке предупреждение выдается на вот этой строке:

319