русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Чтение и запись символов


Дата добавления: 2013-12-23; просмотров: 1102; Нарушение авторских прав


Простейшими консольными функциями ввода / вывода являются функции getchar() и getch(), считывающие символ с клавиатуры, и функция putchar(), выводящая символ на экран. Все эти функции имеют только один аргумент (параметр), что означает, что они могут отображать только один объект.

Функции getch() и getchar() возвращают целое число, в младшем байте которого содержится код символа, соответствующего нажатой клавише (старший байт содержит нулевое значение).

Если при вводе возникает ошибка, функции возвращают константу EOF (EOF равна -1).

Формат функций ввода выглядит так:

int getchar(void)

int getch(void)

Безразлично, к какому типу (char или int) мы отнесем вводимый символ, что обусловлено двойственностью символьных данных в языке С. Для сохранения введенной информации необходима операция присваивания, т.к. функции getch() и getchar() рассматриваются программой как значение введенной переменной.

Однако на этом сходство обеих функций кончается, далее остановимся на их отличиях. Функция getchar() вводит символ из потока, который имеет буфер на одну строку, поэтому она ничего не возвращает до тех пор, пока не будет нажата клавиша ENTER, кроме того, функция getchar() осуществляет эхопечать.

Функция getch() (библиотека conio) вводит символ с консоли без буферизации и эхопечати. Это означает, что символ доступен в программе сразу же после того, как он введен с клавиатуры.

Пример 1.

# include <stdio.h>

#include <conio.h>

void main()

{char simbol1, symbol 2;

simbol1 = getchar();

simbol2= getch();

printf(“\n sim1=%c sim2=%c \n”, simbol1, simbol2);

}

 

Для того, чтобы записать информацию в переменную simbol1, после ввода первого символа необходимо нажать ENTER, второй значащий символ запишется в переменную simbol2 сразу после его ввода с клавиатуры. Причем первый введенный символ мы увидим на экране, а второй нет (при вводе). Разумеется, оба символа увидим после применения функции printf.



Следующий пример показывает посимвольную работу с текстом.

Пример 2. Ввести текст с клавиатуры, с признаком конца ввода считать точку. Подсчитать количество введенных символов.

# include <stdio.h>

void main()

{char z[100];

int i;

printf(“\n Napishite predlogenie c tochkoi v konse \ n”);

for (i=0; z[i] != ’.’; i++)

z[i]= getchar();

printf(“Kolichestvo simvolov= %d”, i);

}

Следует обратить внимание, что при работе с текстом, используя getchar(), мы не получаем строку символов, т.к. отсутствует признак конца строки ‘\0’. Для того, чтобы не нарушать стандартов языка, следует добавить символ ‘\0’ после окончания ввода текстовой информации.

void main()

{char z[100];

int i;

printf(“\n Napishite predlogenie c tochkoi v konse \ n”);

for (i=0; z[i] != ’.’; i++)

z[i]= getchar();

printf(“Kolichestvo simvolov (bez priznaka konsa stroke)= %d”, i);

z[i]=’\0’;

}

Итак, добавление ‘\0’ к массиву z[] превращает последовательность символов в строку.

Остановимся на двойственности символьных данных. Функции ввода/вывода для символьных данных были сконструированы таким образом, чтобы они могли работать и с целочисленными типами данных. Компилятор самостоятельно преобразует данные типа int в символы.

Пример 3. Двойственность символьных данных

void main()

{int letter;

letter = ‘G’;

putchar (letter);

}

Несмотря на то, что переменная letter определена как целочисленная, ей может быть присвоен символ. Программа при этом будет компилироваться и выполняться без ошибок. Право выбора, использовать переменные типа char или int, остается за программистом.

Рассмотрим функцию вывода символа на консоль - putchar(). Несмотря на то, что эта функция наряду с символами может получать и целочисленный аргумент, ей можно передавать только символьные значения. Иначе говоря, целочисленные значения трактуются как коды символов и, следовательно, на экран выводится только младший байт аргумента.

Функция putchar() возвращает либо код символа, либо константу EOF, если произошла ошибка. Формат функции putchar() выглядит так:

int putchar (int c)

Параметром функции может являться:

- символьный литерал,

- символьная константа,

- символьная переменная.

 



<== предыдущая лекция | следующая лекция ==>
Занятие11 | Чтение и запись строк


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.