Форум программистов, компьютерный форум, киберфорум
C (Си)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/11: Рейтинг темы: голосов - 11, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 10.03.2017
Сообщений: 18

Почему getchar() не читает спец. символы, к примеру CR

01.04.2017, 21:11. Показов 2104. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно заполнять массив цифрами и при встречи символа с кодом 13 выйти из цикла.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
01.04.2017, 21:11
Ответы с готовыми решениями:

Вставка в бд, символы перевода строк и спец. символы
Вставляю в бд даные, текст. Он вставляется просто как строка, а я его вставляю как отформатироваанный текст, как мне его вставить, чтобы...

Не могу понять почему Яндекс не читает мой Sitemap? а google читает.
Захожу в яндекс мастер выбираю sitemap а он мне пишет ошибка в файле sitemap невалидный sitemap Но захожу в гугл там все отлично 2200...

Спец символы
Привет всем, проблема такая: делаю курсач, построил график функции и подписал деления - PI, 2PI, 3PI И так далее, препод требует что бы...

7
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13183 / 6819 / 1821
Регистрация: 18.10.2014
Сообщений: 17,259
02.04.2017, 04:59
Цитата Сообщение от KO0 Посмотреть сообщение
Нужно заполнять массив цифрами и при встречи символа с кодом 13 выйти из цикла.
Потому что символ конца строки в языке С - это '\n'. Не какое-то непонятно откуда взявшееся 13, а '\n'. Вот как встретите символ '\n' - так и выходите из цикла.
0
0 / 0 / 0
Регистрация: 10.03.2017
Сообщений: 18
02.04.2017, 22:34  [ТС]
Ну так почему же getchar() не возвращает 13, хотя должен возвращать код соответствующего символа из ASCII. Вот getche() с этим справляется.
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13183 / 6819 / 1821
Регистрация: 18.10.2014
Сообщений: 17,259
02.04.2017, 23:06
Лучший ответ Сообщение было отмечено KO0 как решение

Решение

Цитата Сообщение от KO0 Посмотреть сообщение
Ну так почему же getchar() не возвращает 13, хотя должен возвращать код соответствующего символа из ASCII.
Это почему он его должен возвращать? Откуда такое следет? В концепции текстовых потоков стандартной библиотеки С конец строки - это символ '\n'. И его целочисленное значение совсем не обязано быть 13. У меня, например, это 10.

Цитата Сообщение от KO0 Посмотреть сообщение
Вот getche() с этим справляется.
Это нестандартная функция к стандартным текстовым потокам никакого отношения не имеющая. Так что с чем она там справляется - это ее личное дело.
1
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
02.04.2017, 23:23
KO0,
C
1
2
        c=getchar();
        printf("%x\n", c);
???

Добавлено через 5 минут
В досе конец строки пара символов с кодами 13h (возврат каретки) и 10h (перевод строки)
Вы будете ловить 13h?
Вы пишите на асме?
0
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
13183 / 6819 / 1821
Регистрация: 18.10.2014
Сообщений: 17,259
03.04.2017, 00:04
Лучший ответ Сообщение было отмечено HighPredator как решение

Решение

Цитата Сообщение от vua72 Посмотреть сообщение
В досе конец строки пара символов с кодами 13h (возврат каретки) и 10h (перевод строки)
Во-первых, не 10h и 13h, а 10 и 13, т.е. 0Ah и 0Dh.

Во-вторых, на конкретной платформе конец строки может обозначаться хоть вереницей из пятидесяти символов, но при чтении из текстового потока функция getc будет транслировать их в один символ \n. Так как getchar - это getc(stdin) и stdin является текстовым потоком, "видеть" через getchar вы всегда будете только \n.
1
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
03.04.2017, 20:08
да, конечно 0Ah и 0Dh.
Но это не меняет суть изложенного ни вами, ни мной.

Добавлено через 1 минуту
conio тянется по всем книжкам и методичкам, а потом человек садится программировать не под Виндоуз.
0
70 / 70 / 35
Регистрация: 06.07.2016
Сообщений: 415
06.04.2017, 02:49
Лучший ответ Сообщение было отмечено KO0 как решение

Решение

Цитата Сообщение от KO0 Посмотреть сообщение
с кодом 13
Выдержка из Википедии -
Цитата Сообщение от Википедия
Системы, основанные на ASCII или совместимом наборе символов, используют или LF (перевод строки, 0x0A = 10), или CR (возврат каретки, 0x0D = 13) по отдельности, или последовательность CR+LF;
То есть '\n' на вашей системе (как и на моей) - последовательность аски кодов 13(CR) и 10(LF), как вам уже выше сказали.
https://ru.wikipedia.org/wiki/... 0%BA%D0%B8
Именно поэтому для переносимости лучше просто писать выход из цикла по приходу '\n', а не играться с кодами, которые могут отличаться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2017, 02:49
Помогаю со студенческими работами здесь

спец символы
парни, бьюсь уже не 1й час. проблема состоит в том, что magic_quotes_gpc() включена и я пытаюсь передать методом "POST"...

Спец Символы.
В своем программе мне надо использовать спец символ '♥' В итоге я пишу вот так Label1->Caption="♥"; Но вылезает...

Спец.символы
Странная ошибка: x = "\x01" # все ok y = "\xff" # ошибка y = b"\xff" # все ok

Добавление в БД спец символы
вот есть такая проблема допустим есть текст но в нём есть вот такая кака как ковычка одинарная или двойная (',") вот что я делал...

Спец-символы в консоли
Почему-то когда я пишу управляющую последовательность вроде cout << '\0x5c'; мне консоль выдает примерно 9-значное число вместо '\'.....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru