недавно начал учить с++, до этого изучал python, столкнулся с таким вопросом. Как правильно в c++ считать строку, состоящую из целых чисел, количество которых мы не можем знать? в python,for example, было бы так:
a = [int(i) for i in input().split()]
как такую операцию записать на с++?
Сначала считываем строку целиком через getline
, а потом достаем из нее числа с помощью istringstream
.
Вот так:
#include <iostream>
#include <sstream>
#include <string>
#include <vector>
int main()
{
std::string str;
std::getline(std::cin, str);
std::istringstream stream(str);
std::vector<int> vec;
int x;
while (stream >> x)
vec.push_back(x);
if (!stream.eof())
{
std::cout << "Строка имеет неправильный формат.\n";
return 1;
}
for (int x : vec)
std::cout << x << ' ';
std::cout << '\n';
}
Если вам нравятся понты веяния modern C++™, то цикл while
можно заменить на std::copy(std::istream_iterator<int>(stream), std::istream_iterator<int>(), std::back_inserter(vec));
.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Недавно возник вопрос каким образом трояны на подобие Petya получают доступ к файлам и шифруют их?
В приложении использую прокрутку в Textview с помощью метода ScrollingMovementMethod()Все отлично работает, но очень раздражает, что при нажатии на Textview...
подскажите по UML диаграмме, с трудом понимаю что данное приложение должно делать, если я верно понял то оно должно анализировать выраженияС-класс...