nexator

Category:

37

просто нужно знать, что вычисления эти будут произведены не с двоичным кодом числа “5”, а с двоичным кодом символа “5”, который, в общем, не соответствует двоичному коду числа “5”, кстати, на этом основаны разные трюки программирования на “C”, и это показывает, что “С” недалеко ушел от Ассемблера, где такие неоднозначности в интерпретации кодов – один из основных приемов программирования на Ассемблере и вообще программирования непосредственно в машинных кодах компьютера, когда один и тот же код, в зависимости от логики работы программы, может представлять и число, и часть числа, и символ и часть символа и команду процессора или часть команды процессора или представлять собой часть последовательности кодов, которые интерпретируются как картинка, музыка, видео. Примеры использования функции “getchar()”:

int letter;

letter = getchar();

или

char letter;

letter = getchar();

тут мы видим, как оформляется функция “getchar()” для того чтобы ввести символ, введенный с клавиатуры, в переменную “letter”, которая в первом случае имеет тип данных “int” (тут, в числовую переменную типа int будет введен код символа, с которым, в дальнейшем, можно провести математические вычисления как с числом типа int, так что вам надо точно знать, как выглядит код введенного символа, в представлении данного компьютера, а это зависит от кодировки, которая используется в данном компиляторе: ASCII, Unicod или что-то ещё, т.е. реально, в программу, будет введено не то, что, кажется в явном виде, в общем, в данном случае используется достаточно скользкий трюк, на котором можно основательно споткнуться и лучше такими трюками не пользоваться), а во втором случае -  “char” (в данном случае в символьную переменную будет введен именно символ). Само собой, что жать клавишу “Enter” так же не надо, потому что подразумевается, что будет введен только один символ. Данная “функция” обычно используется чтобы программа могла выводить запросы типа “Да \ Нет”, а пользователь выбирал нужное нажатием на одну клавишу, так же это используется, когда программа выводит много строк информации, и чтобы как-то приостанавливать вывод строк, можно использовать функцию “getchar()”, которая приостанавливает вывод результатов программы до тех пока не будет введен хоть какой-то символ с клавиатуры (так реализуется знаменитая фраза “Press Any Key”), ну и так же это используется, для программирования вызова разных режимов работы программы которые обычно не отражают в официальной документации, так сказать недокументированных режимов работы, когда официально можно ввести только “Да \ Нет”, а реально можно нажать ещё какие-то клавиши, чтобы запустить режимы работы о которых знает только ограниченный круг пользователей программы, ну это для любителей тайн, загадок и всяких секретных кодов, так сказать “по секрету всему свету”. Функция getchar() используется для ввода единичного символа с клавиатуры и работает без использования указателей. Вообще, используя функцию getchar() можно ввести строку какой угодно длины, вставив друг за другом эти функции в программе или по циклу, так можно сделать даже нечто вроде вируса: делаем зацикленный ввод, используя функцию getchar(), в итоге можно будет вводить текст, но больше компьютер ничего делать не будет, т.е. вроде и не сломался, вроде работает, но ничего больше не делает.

Функция scanf(), вводит форматированные данные, именно эта функция и вводит числа в программу, смысл в том, что эта функция сканирует источник ввода информации, обычно клавиатуру и принимает от источника т.н. “скан-коды” (или коды символов, если производится чтение из файла), а потом интерпретирует эти “скан-коды” (или коды символов, если идет чтение из файла), в зависимости от установок формата (строка формата) функции scanf(). Тут надо пояснить как работает клавиатура: клавиатура – это набор клавиш, каждая из которых может быть в одном из 2-х состояний: “нажата” или “не нажата”, так вот, для каждого из состояний “нажата” или “не нажата”, каждой клавиши, формируется свой индивидуальный код (можно, так же использовать только состояние Нажата, если состояния Нажата нет, можно считать что клавиша Не Нажата, хотя в таком случае, вы не зафиксируете состояние, что клавиша не исправна, что, впрочем, допускается для гражданских компьютеров, в случае  

Error

default userpic

Your reply will be screened

When you submit the form an invisible reCAPTCHA check will be performed.
You must follow the Privacy Policy and Google Terms of use.