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

Остановить считывание scanf по нажатии <enter> - C++

Восстановить пароль Регистрация
 
Illusie
Сообщений: n/a
04.03.2012, 12:22     Остановить считывание scanf по нажатии <enter> #1
Здравствуйте! Подскажите пожалуйся, как остановиться при нажатии ввода:

C++
1
2
3
4
5
6
int iSum = 0, iNumber;
 
while (scanf("%d,", &iNumber))
{
    iSum = iSum + iNumber;
}
в данном виде цикл не остановится, пока не будет введен лишний символ. Моя задача читать стороки только вида:
-1 4 6 7
а не такие:
-1 4 6
7
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2012, 12:22     Остановить считывание scanf по нажатии <enter>
Посмотрите здесь:

C++ Как считать строку scanf'ом при этом не переходя на новую строку, т.е. без использования Enter'а
C++ Как сделать, чтобы диалоговое окно не закрывалось при нажатии клавиши ENTER?
C++ Программа закрывается при нажатии Enter
C++ Действие при нажатии Enter
Считывание чисел до нажатия Enter C++
Как остановить цикл при вводе enter? C++
C++ Ошибка с массивом: программа при вводе "ступорится" при нажатии клавиши Enter

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rangerx
1908 / 1517 / 139
Регистрация: 31.05.2009
Сообщений: 2,876
04.03.2012, 14:14     Остановить считывание scanf по нажатии <enter> #2
Цитата Сообщение от Illusie Посмотреть сообщение
Моя задача читать стороки только вида:
-1 4 6 7
а не такие:
-1 4 6
7
В данном случае, более правильным решением было бы осуществить ввод всей строки в символьный массив, и только потом парсить.
Illusie
Сообщений: n/a
04.03.2012, 14:38     Остановить считывание scanf по нажатии <enter> #3
Если использовать string, придется слишком долго обрабатывать каждый символ, что бы проверить число это или нет, плюс запятые, а сканф решает все проблемы 1 махом. И не нужно тратить дополнительную память, все делается за 1 проход.
Yandex
Объявления
04.03.2012, 14:38     Остановить считывание scanf по нажатии <enter>
Ответ Создать тему
Опции темы

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