![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
Народ возник вопрос вот код (работающий нормально):
Код:
Код:
Так вот первый код работает как надо, а второй запускается и после вызова функции CoderFunc программа возвращается в main без ввода символов который должен быть. Мне кажется когда в функции main я вводил имя файла и нажал интер(конец ввода как не так) и символ перехода на новую строку остался в буфере. В первом коде этот буфер если я не ошибаюсь сбрасывается с помощью cin.get(); и запрашивает символ, а вот во втором коде символ записывается в переменную Number и тем самым не проходит условие цикла. Я правильно думаю?
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
Просто если использовать код без ввода имени файла, а начать сразу с ввода символа то работает нормально и без второго вызова cin.get()
Код:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
![]()
Да совершенно верно, условие цикла не выполняется
while((Number = cin.get()) != '\n') Так как в буфере последним символом идет '\n' |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
Спасибо. А есть какой нить способ чтоб это предотвратить или все время сбрасывать последний символ буфера с помощью cin.get();
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
Я вроде слышал о командах типа очистить буфер или я что то путаю
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 29.04.2012
Сообщений: 36
|
![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
а метод .sync не подойдет? ( cin.sync() )
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
Последний раз редактировалось kineziz; 06.05.2012 в 02:15. |
![]() |
![]() |
![]() |
#8 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
![]()
Работает проверено. Вот код для примера:
Код:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
C# Копирование участка программы в буфер как изображение | Forcer | Помощь студентам | 5 | 04.07.2011 10:55 |
Кольцевой буфер | KTOIA | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 6 | 01.11.2009 18:17 |
Строки в буфер | AgressiveBehavior | Общие вопросы Delphi | 4 | 30.09.2009 11:07 |
Буфер | Черничный | Общие вопросы Delphi | 5 | 10.09.2008 09:35 |