Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Микропроцессорная техника.doc
Скачиваний:
5
Добавлен:
01.05.2025
Размер:
6 Мб
Скачать
☆

Строковые переменные и константы.

Для работы со строками Си использует одномерные массивы (один элемент – один символ), признак конца строки  \0 (он занимает один байт).

Char client [10];

Char client [ ] = “Иванов”;

Char client [5] = “Иванов”;

Строковые константы можно определять:

  1. С помощью константы макроопределения #define:

#define client “Иванов”;

  1. С помощью типизированной константы:

Const char client = “Иванов”;

Escape последовательности.

Чтобы использовать клавиши в программе, то есть еscape символ, а за ним escape код.

Escape символ  \

Escape последовательности:

Последовательность

Название

Функция

\а

Звонок

Звук

\f

Перевод страницы

Начало нового экрана

\n

Новая строка

Начало новой строки

\t

Табуляция

Переход к следующей позиции табуляции

\’

Апостроф

\”

Кавычки

Элементарный ввод вывод в Си.

Особенность Си – отсутствие в языке операторов ввода – вывода, вместо них используют библиотечные функции.

Устройства ввода – вывода это клавиатура и дисплей (консоль).

Бывает:

  • Неформатированный

  • Форматированный.

Функции неформатированного ввода – вывода:

  1. функции ввода – вывода символов:

putchar ( ) - не переводит строку.

Getchar ( )

/*putgetch.cpp Иллюстрация ввода – вывода */

#include <stdio.h>

#define initial ‘H’

main ( )

char letter = ‘G’;

char in_letter;

putchar (initial);

putchar (letter);

putchar (‘\a’);

putchar (‘\n’);

in _letter = getchar ( );

putchar (in_letter);

putchar (‘n’);

return 0;

putgetch.exe

HG звонок

_X

_

  1. функции ввода – вывода строки:

puts ( ) – выводит строку с переходом на новую строку.

Gets ( ) – вводит строку, символы которой набираются с клавиатуры, ввод заканчивает ENTER.

/* getsputs.cpp Имитация ввода – вывода */

#include <stdio.h>

main ( )

char name [20];

char full_name [80];

puts (‘Введите ваше имя’);

gets (name);

puts (“Ввод подтверждается”);

puts (name);

puts (“Введите ваше ФИО”);

gets (full_name);

puts (“Ввод подтверждается”);

puts (full_name);

return 0;

  1. Функции форматированного ввода – вывода позволяет обрабатывать несколько переменных, выполнять преобразование данных;

Printf ( ) – выводит данные на экран.

Scanf ( ) – принимает данные с клавиатуры.

Функция printf ( ) выводит на экран строку символов до знака %ХХХ.

ХХХ – тип выводимых данных (спецификация)

%d – целое число.

%f – вещественное число.

%c – символ.

%s – строка.

Printf ( ) – не переводит строку.

/*print.cpp Имитация вывода*/

#include <stdio.h>

main ( )

int a=5, b=7, c;

c=a+b;

printf (“Сумма равна %d \n”,c);

return 0;

При выводе вещественных чисел по умолчанию выводится шесть знаков после запятой:

…

float a=1.2, b=1.44, c;

c=a+b;

printf (“Сумма равна %d \n”,c);

…

на экране будет: сумма равна 2.639999

Чтобы изменить:

Printf (“Сумма равна %2f \n”,c);

Тогда будет только 2 знака после запятой.

/*inout2.cpp Программа ввода – вывода */

#include <stdio.h>

main ( )

int a,b,c;

printf (“Введите два целых числа:”);

scanf (“%d %d”,&a, &b);

c=a+b;

printf (“Результат равен %d \n”, c);

return 0;

Если в программе используется несколько функций scanf, то во входном буфере остается символ перевода строки и каждый раз при выполнении последующей функции scanf этот символ считывается и программа работает неправильно. Поэтому надо очищать входной буфер.

Fflush (stdin) – функция, очищающая буфер, ее надо ставить перед функцией scanf.

Gets ( ) – вводит данные в виде строки.

Atoi ( ) – преобразует строку в данные типа int.

Atof ( ) – преобразует строку в данные типа вещественные.

Они в заголовочном файле stdlib.h

/*inout3.cpp */

#include <stdio.h>

#include <stdlib.h>

main ( )

char name [80];

age_str [80];

weight_str [80];

int age;

float weight;

printf (“Введите ваше имя:”);

gets (name);

printf (“Привет %s! \n” name);

printf (“Какой ваш возраст?”);

gets (age_str);

age=atoi (age_str);

printf (“А какой у вас вес?”);

gets (weight_str);

weight = atof (weight_str);

printf (“Подтверждаю ввод, возраст - %d, вес - %2f \n”, age, weight);

return 0;

gethch ( ) – вводит символ с клавиатуры и не отображает его на экране, нажатие ENTER не надо, это функция возвращает тип char.

Часто это функция используется для ввода значений, например из какого та списка. puts (”для продолжения нажмите ENTER”);

Getch ( ) – находится в заголовочном файле conio.h.