0 / 0 / 0
Регистрация: 01.08.2015
Сообщений: 10
|
|
1 | |
Подсчет входного потока07.06.2016, 15:26. Показов 1484. Ответов 5
Метки нет Все метки)
(
Здравствуйте.
Начал ознакомление с легендарным языком и сразу же столкнулся с, казалось бы, маленькими нюансами, которые вызывают огромные вопросы. Искренне надеюсь на вашу помощь. 1. На первом изображении программа выполняет подсчет вводимых с клавиатуры символов. При этом, счетчик прибавляет +1 каждый раз, когда введенное значение не имеет признака конца файла. Казалось бы все ясно, но возникает вопрос: полученная форма вывода - это результат того, что последнее значение счетчика запоминается в памяти, а компилятор перебирает последовательно каждый отдельный символ в слове? https://i.yapx.ru/BOrD.png 2. Следующее изображение - подсчет строк. Каждый раз, как компилятор встречает перенос, происходит прибавление в счетчике на единицу. Тут вопрос аналогичный, но лишь с привязкой к строкам. https://i.yapx.ru/BOrE.png 3. Последнее изображение касается программы, выполняющей подсчет строк, слов, и символов. Слово в данном случае определяется тем, присутствует ли признак окончания ввода слова (пробел, табуляция или перенос). Консоль опять же выводит такой "накопительный" результат. https://i.yapx.ru/BOrF.png В связи с этим резюмирующий вопрос: каким образом в данном случае все-таки работает компилятор, и почему, когда происходит явное указание признака конца файла после ввода символа (Прим: First^z) то компилятор не прекращает работу команды, а считает и последний символ тоже? Спасибо.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
|
|
07.06.2016, 15:26 | |
Ответы с готовыми решениями:
5
Подсчет строк входного потока - Ошибка С2065 Копирование входного потока в выходной Посимвольное копирование входного потока в выходной Копирование входного потока в выходной с условием |
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
|
||||||
08.06.2016, 05:15 | 2 | |||||
![]() Решение
Ну так вы же не обнуляете счетчик.
1
|
0 / 0 / 0
Регистрация: 01.08.2015
Сообщений: 10
|
||||||
08.06.2016, 06:50 [ТС] | 3 | |||||
Спасибо большое. Не подскажешь тогда, как тут обнулить счетчик? Что-то не соображу, как действовать в ситуации с несколькими условиями.
0
|
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
|
||||||
08.06.2016, 08:01 | 4 | |||||
![]() Решение
Обнулять ваши nwhite, nother, ndigit нужно когда нажата клавиша Enter это знак перевода строки '\n'.
1
|
0 / 0 / 0
Регистрация: 01.08.2015
Сообщений: 10
|
|
08.06.2016, 14:51 [ТС] | 5 |
Спасибо, вы мне очень помогли. Только вот один нюанс: как бы еще сделать так, чтобы и enter (переход на новую строку - '\n') тоже учитывался счетчиком? Я поэтому и внес его в конструкцию, как одно из условий, как знак разрыва (BreakChars).
0
|
1786 / 1036 / 445
Регистрация: 12.05.2016
Сообщений: 2,550
|
||||||
08.06.2016, 15:08 | 6 | |||||
![]() Решение
1
|
08.06.2016, 15:08 | |
Помогаю со студенческими работами здесь
6
Как удалить из входного потока введенное значение? Программа для копирования входного потока в выходной Удалить символ из входного потока вводимых данных
Копирование входного потока в выходной с заменой каждой строки
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |