|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.05.2012, 03:10 | #1 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Буфер программы
Народ возник вопрос вот код (работающий нормально):
Код:
Код:
Так вот первый код работает как надо, а второй запускается и после вызова функции CoderFunc программа возвращается в main без ввода символов который должен быть. Мне кажется когда в функции main я вводил имя файла и нажал интер(конец ввода как не так) и символ перехода на новую строку остался в буфере. В первом коде этот буфер если я не ошибаюсь сбрасывается с помощью cin.get(); и запрашивает символ, а вот во втором коде символ записывается в переменную Number и тем самым не проходит условие цикла. Я правильно думаю?
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
05.05.2012, 03:13 | #2 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Просто если использовать код без ввода имени файла, а начать сразу с ввода символа то работает нормально и без второго вызова cin.get()
Код:
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
05.05.2012, 03:58 | #3 |
Форумчанин
Регистрация: 11.07.2010
Сообщений: 914
|
Да совершенно верно, условие цикла не выполняется
while((Number = cin.get()) != '\n') Так как в буфере последним символом идет '\n' |
05.05.2012, 20:58 | #4 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Спасибо. А есть какой нить способ чтоб это предотвратить или все время сбрасывать последний символ буфера с помощью cin.get();
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
05.05.2012, 20:59 | #5 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
Я вроде слышал о командах типа очистить буфер или я что то путаю
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
|
06.05.2012, 00:45 | #6 |
Пользователь
Регистрация: 29.04.2012
Сообщений: 36
|
|
06.05.2012, 02:10 | #7 |
Форумчанин
Регистрация: 22.12.2011
Сообщений: 378
|
а метод .sync не подойдет? ( cin.sync() )
Большинство хороших программистов делают свою работу не потому, что ожидают оплаты или признания, а потому что получают удовольствие от программирования.
Последний раз редактировалось kineziz; 06.05.2012 в 02:15. |
06.05.2012, 02:16 | #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 |