Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[C/C++] Ввод прозвольного количества значений в одной строке

44K
23 апреля 2010 года
Bonez92
37 / / 25.08.2009
Всем привет.
Пользователь вводит произвольное кол-во значений к переменным типа int, разделенных пробелом. Строка заканчивается нулем.
Пример:
2 9 4 36 5 0

Не подскажите, как такое считать не используя gets() и аналоги?
307
23 апреля 2010 года
Artem_3A
863 / / 11.04.2008
использовать cin, установить в качестве маркера окончания ввода пробел, читать в цикле пока не встретиться ноль.
44K
23 апреля 2010 года
Bonez92
37 / / 25.08.2009
Забыл сказать... После нуля, к сожалению, нет пробела.
Т.е. если наш маркер конца ввода - пробел, тогда после прочтения числа 5 из нашего примера, из потока в буфер пойдет "0\n..." до следующего пробела, если он будет.

А как установить два маркера конца ввода, если это возможно?
307
23 апреля 2010 года
Artem_3A
863 / / 11.04.2008
Цитата: Bonez92
Забыл сказать... После нуля, к сожалению, нет пробела.
Т.е. если наш маркер конца ввода - пробел, тогда после прочтения числа 5 из нашего примера, из потока в буфер пойдет "0\n..." до следующего пробела, если он будет.

А как установить два маркера конца ввода, если это возможно?



смотрите в сторону манипуляторов, помниться, чем то таки на втором курсе занимались, хотя уже не уверен!:(

56K
24 апреля 2010 года
Ivanoff
6 / / 07.01.2010
Как вариант решения:
Код:
#include<iostream>
#include<vector>

using namespace std;


int main(int argc, char **argv)
 {
   vector<int> digits;
   int curDigit;
   cout << "Enter a few numbers through gap" << endl;

   while(1)
    {
      cin >> curDigit;

      if(curDigit == 0)
       {
         break;
       }

      digits.push_back(curDigit);
    };


   cout << "Input:";
   for(vector<int>::const_iterator it=digits.begin(); it != digits.end(); ++it)
    {
      cout << " " << *it;
    }

     cout << endl;


  return 0;
 }
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог