0 / 0 / 0
Регистрация: 23.10.2017
Сообщений: 3
|
||||||
1 | ||||||
С клавиатуры вводятся символы, пока не встретится знак "?"10.04.2018, 16:30. Показов 3308. Ответов 7
Метки нет (Все метки)
Добрый день, подскажите, пожалуйста. Такая задача. Требуется - вводить символы до тех пор, пока не встретится знак "?" или количество введенных символов превысит 79. На экран вывести результат результат. Эта программа не реагирует на знак "?". В чем ошибка?
0
|
10.04.2018, 16:30 | |
Ответы с готовыми решениями:
7
С клавиатуры вводятся символы, пока не встретится точка С клавиатуры вводятся символы, пока не встретится символ '*'. На экран выводить код каждого введенного символа. В переменную а последовательно вводятся числа -9, 18, 2, 6, 7, 20, 11, -6. Найти сумму всех чисел до тех пор, пока не встретится 11 Пропустить все символы пока не встретится слово Вводить числа с клавиатуры, пока не встретится задуманное число х. |
Заблокирован
|
|
11.04.2018, 12:08 | 3 |
Что у Вас происходит в цикле "for"? Как минимум, есть подозрение, что в нем символы "?" и "\n" перепутаны местами.
Еще вопрос, зачем здесь "iostream"?
0
|
2305 / 1131 / 702
Регистрация: 25.04.2016
Сообщений: 3,224
|
||||||
11.04.2018, 20:48 | 4 | |||||
Проблема в том, что у терминала есть буфер, т.е. все символы, поступающие с клавиатуры, сначала попадают в буфер и накапливаются в нем, и только когда в буфер попадает контрольный символ, обычно это символ переноса каретки '\n', все накопленное содержимое передается в программу на обработку. Т.е. наша задача - прочитать всю поступившую из буфера ересь, при этом отловить в ней 80 символов и записать их в строку, либо отловить знак вопроса и записать все, что было до него в строку... Однако, что делать с оставшимися символами? Сами собой они никуда не денутся.
Например, нам поступила строка из 500 символов, все, что было до знака ? или до 80 символа, мы записали в строку, а куда мы денем оставшиеся 420 символов? Или у нас вдруг произошел сбой терминала, по какой-то причине оборвался поток ввода, что делать? Мы так и будем пытаться прочитать символ с несуществующего потока? Я бы сделал что-то вроде этого (это очень приблизительный вариант, и я его не тестировал):
0
|
Заблокирован
|
||||||
11.04.2018, 21:19 | 5 | |||||
Так и там все работает, если тело цикла немножко подправить.
0
|
Просто Лис
|
||||||
12.04.2018, 04:48 | 6 | |||||
0
|
2305 / 1131 / 702
Регистрация: 25.04.2016
Сообщений: 3,224
|
|
12.04.2018, 15:18 | 7 |
Интересно для кого я комментарии пишу? Или зачем? Если приходит такой вот студент, смотрит в книгу, видит ... а вот шут его знает, что он там видит, и выносит вердикт: все работает. Нет, дорогой мой, ни хрена там не работает. А почему не работает написано выше. Или у вас критерий работоспособности - это то, что программа запускается и выводит какой-то результат на экран?
0
|
Заблокирован
|
|
12.04.2018, 17:09 | 8 |
0
|
12.04.2018, 17:09 | |
12.04.2018, 17:09 | |
Помогаю со студенческими работами здесь
8
В промежутке между символами с номерами от P1 до P2 удалить все символы, пока не встретится символ S2 Напишите программу, которая читает входные символы до тех пор, пока не встретится символ # Вводить числа с клавиатуры, пока не встретится 0. Подсчитать сумму всех * введенных нечетных чисел Дан текстовый файл. Напечатать символы с k1 по k2 в каждой строке. Символы k1 и k2 вводятся с клавиатуры С клавиатуры вводится фраза до тех пор, пока не встретится точка. Подсчитать количество слов во введенной фразе C клавиатуры вводятся числа пока не будет Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |