Форум программистов, компьютерный форум CyberForum.ru

while (cin>>input) - C++

Восстановить пароль Регистрация
 
PreFX
25 / 20 / 1
Регистрация: 14.07.2012
Сообщений: 176
20.03.2013, 16:54     while (cin>>input) #1
В общем, когда-то пользовался такой вот примерно конструкцией:
C++
1
2
3
int row[200], num = 0;
while (cin>>row[num])
      num++;
Смысл, надеюсь, понятен: вводится ряд чисел, и каждое число сохраняется в массиве.
Сейчас же это почему-то не работает, т.е. ввод не прекращается. Помогите найти косяк -_-
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.03.2013, 16:54     while (cin>>input)
Посмотрите здесь:

C++ Объект cin и его метод cin.get()
getline(cin, str) и cin>> C++
C++ Отличие функции cin.get и cin.getline
cin.getline и cin.ignore C++
C++ Cin вместо cin.getline
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
20.03.2013, 16:57     while (cin>>input) #2
C++
1
2
3
int row[200];
for (int num=0; num<200; num++)
cin>>row[num];
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.03.2013, 16:57     while (cin>>input) #3
а как вы прекращаете ввод?
fjay69
 Аватар для fjay69
85 / 85 / 1
Регистрация: 26.10.2012
Сообщений: 248
20.03.2013, 17:05     while (cin>>input) #4
Придумать число, при вводе которого прекратить заполнение массива. Например, 666. Тогда:
C++
1
2
3
4
int row[200];
for (int num=0; num<200; num++)
{cin>>row[num];
if (row[num]==666) break; }
Буду благодарен, если кто-нибудь предложит более корректный способ)
Hrobak
288 / 168 / 11
Регистрация: 22.03.2010
Сообщений: 483
Завершенные тесты: 1
20.03.2013, 17:31     while (cin>>input) #5
Ctrl+Z в Windows, Ctrl+D в *nix вроде.
Jupiter
Каратель
Эксперт C++
6543 / 3963 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
20.03.2013, 17:33     while (cin>>input) #6
Цитата Сообщение от fjay69 Посмотреть сообщение
более корректный способ
способ в 1-м посте почти корректный
C++
1
2
3
int row[200], num = 0;
while (cin >> row[num] && num++ < 200)
    ;
Yandex
Объявления
20.03.2013, 17:33     while (cin>>input)
Ответ Создать тему
Опции темы

Текущее время: 10:35. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru