|
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
|
|||||||||||
getchar28.11.2010, 18:47. Показов 7535. Ответов 38
Метки нет (Все метки)
Не пойму почему getchar 2-ой раз запрашивает ввести строку, я же написал в цикле условие, что выполняется, если ch!=10
0
|
|||||||||||
| 28.11.2010, 18:47 | |
|
Ответы с готовыми решениями:
38
getchar () Getline, getchar Функция getchar() в С++ |
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||||||
| 28.11.2010, 23:55 | ||||||
int делается, чтобы программа не путала символ 0xFF и константу EOF
0
|
||||||
|
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
|
||
| 29.11.2010, 00:32 [ТС] | ||
Добавлено через 17 минут accept что такое nsclen
0
|
||
|
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
|
|
| 29.11.2010, 00:41 [ТС] | |
|
Я и так знаю(потому что я проверял) с помощью getchar() можно ввести строку но считывает и возвращает он 1 символ и читает он пока не найдет символ 10 включительно
0
|
|
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
| 29.11.2010, 00:43 | |
|
Lotles, Угу. Буферизованный ввод это называется.
Ввод идет до тех пор пока не будет получен символ перевода на новую строку - дальше из буфера береться по одному символу.
0
|
|
|
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
|
|||
| 29.11.2010, 00:52 [ТС] | |||
Или скажите в чем ошибка(в главном коде)
0
|
|||
|
26 / 25 / 10
Регистрация: 26.11.2010
Сообщений: 57
|
|
| 29.11.2010, 00:53 | |
|
2
|
|
|
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
|
||||||
| 29.11.2010, 01:00 [ТС] | ||||||
|
Блин какая глупая ошибка
Молодец ! Ошибки нет, а почему getchar() просил ввести символ я так и не понял ну хотя догадываюсь
А чо это 2 разных переменныъ в памяти размещ-ся с одним именем Так ?
0
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||||||
| 29.11.2010, 01:11 | ||||||
|
Lotles, Локальная переменная цикла перекрывала локальную переменную функции.
Т.е.
0
|
||||||
|
26 / 25 / 10
Регистрация: 26.11.2010
Сообщений: 57
|
||
| 29.11.2010, 01:18 | ||
|
2. В цикле ты обьявляешь новый!!! ch. Затем выходим из цикла: происходит разрушение нового!!! ch 3.Заходим опять в цикл и проверяем ch обьявленную заранее, т.е. =0, на предмет равенства(бесконечный цикл однако)
0
|
||
|
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
|
||||||||||||||||
| 29.11.2010, 01:46 [ТС] | ||||||||||||||||
|
Все таки до конца не понял
Объявили char ch; потом
Далее:
0
|
||||||||||||||||
|
26 / 25 / 10
Регистрация: 26.11.2010
Сообщений: 57
|
||
| 29.11.2010, 01:51 | ||
|
Вот и компилятор берет ch который был обьявлен до цикла. ИМХО, такие вещи лучше делать через do while
0
|
||
|
2 / 2 / 0
Регистрация: 29.12.2009
Сообщений: 167
|
||||||
| 29.11.2010, 02:19 [ТС] | ||||||
|
А как вобще такое возможно 2 переменных и 2 одинаковых имени
Вот здесь например нельзя 2 одинаковых переменных объявить
0
|
||||||
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
||
| 29.11.2010, 02:23 | ||
|
Lotles, Области видимости. Это все области видимости...
Добавлено через 1 минуту Мое же объяснение из одной из соседних тем...
0
|
||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||
| 29.11.2010, 02:27 | ||
но тебе по ходу нужно продвигаться даже пока i < nsclen - 1, так как нуль-символ потом ещё пишешь
0
|
||
|
|
||||||||
| 29.11.2010, 09:40 | ||||||||
|
Добавлено через 1 минуту блин, страницу не обновил, не увидел сколько понаписали. Добавлено через 12 минут Только что сам проверил, все правильно работает как с ch!=10 , так и с ch!='\n'. Добавлено через 44 секунды
0
|
||||||||
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
|
| 29.11.2010, 09:58 | |
|
https://www.cyberforum.ru/post1151124.html
getchar() нужно вынести из тела цикла, потому что он может не сработать и значит в строку записывать его результат не надо
0
|
|
|
|
|
| 29.11.2010, 10:23 | |
|
accept, да действительно, если в потоке остается например '\n' после cin'а, то эти две записи (та, что была изначально и та, котороую предложили вы) ведут себя по разному. Но посути в таком случае не от той не от другой толку нет (строка не заполниться). Поэтому практичней самому следить за состоянием потока (например вставлять cin.ignore() там, где надо), после этого в ф-ции можно использовать любую запись цикла (как душе угодно))
0
|
|
|
4866 / 3288 / 468
Регистрация: 10.12.2008
Сообщений: 10,570
|
||
| 29.11.2010, 10:38 | ||
0
|
||
| 29.11.2010, 10:38 | |
|
Помогаю со студенческими работами здесь
39
[C++] аналог getchar() Функция getchar! getchar() в linux функции getchar() и putchar() как работает getchar() ? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога
Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
|
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
|
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога
В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
|
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
|
|
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога
Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
|
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога
Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
|
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования.
Часть библиотеки BedvitCOM
Использованы. . .
|
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога
SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
|