@msuprunenko
C/C++ DirectX

Как можно ли сделать ввод несколькох даных в одной строчке?

Как можно ли сделать ввод несколькох даных в одной строчке ?
При условии что юзер сам вводит количество раз вводимых даных.
Num Нужно вводить
for (int i = 0; i < num; i++)
 {
   std::cin >> mass[i];
   result += mass[i];
  }
  • Вопрос задан
  • 149 просмотров
Решения вопроса 1
Можно сделать так:
int num; // количество вводимых элементов
vector<Type> storage; // хранилище элементов

while (num != 0) {
    Type tmp = 0;
    
    cin >> tmp;
    storage.push_back(tmp);
    --num;
}

При условии что вы используете либо стандартный тип, либо тип для которого перегружен оператор извлечения данных из потока.
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
@MiiNiPaa
В вашем текущем коде вы можете вводить сколько угодно значений в одной строке: оператор>> разделяет значения пробельными символами. Неважно, переводы строки или пробелы ли это.
Ответ написан
tlito
@tlito
drupal, c++, seo
if (num==3) cin >> mass[0] >> mass[1] >> mass[2] ;
if (num==4) cin >> mass[0] >> mass[1] >> mass[2] >> mass[3] ;
if (num==5) cin >> mass[0] >> mass[1] >> mass[2] >> mass[3]  >> mass[4];

...
Ответ написан
Весьма странная постановка задачи.
При условии что юзер сам вводит количество раз вводимых даных.
количество раз, а не количество данных. Зачем этот изврат? Если именно количество раз, то логично предположить, что именно несколько раз вводят данные и нажимают enter. Если просто неизвестное число неких данных, не проще ли объявить чар неизвестного размера, брать всю строку и засовывать туда, разбив по заранее оговоренному разделителю, как предложил Станислав?

Или тогда озвучивайте полностью поставленную задачу, а не только то, что относится к этому фрагметну кода.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы