
Ввод-вывод в стиле с
Для начала разберём ввод/вывод в стиле языка C, а объектно-ориентированный ввод-вывод рассмотрим немного позднее.
Библиотека Си содержит богатый и разнообразный ассортимент функций ввода-вывода. Для их использования необходимо подключить файл заголовка:
#include <stdio.h>
Функция gets() читает строку с консоли и помещает её по указанному адресу. Символ возврата каретки не становится частью строки.
char s[256];
gets(s);
Функция puts() выводит на консоль аргумент-строку и символ новой строки.
Форматированный ввод/вывод.
Форматированный вывод выполняется функцией printf:
printf(“control string”,argument list);
control string – управляющая строка
argument list – список аргументов
Управляющая строка состоит из двух типов элементов. Первый тип составляется из символов, которые функция будет выводить. Второй тип содержит команды формата, которые определяют способ представления аргументов. Команда формата в начала содержит знак ‘%’, затем – код формата. Некоторые коды формата:
%с – отдельный символ
%d – десятичное
%e – научная нотация
%f – деятичное с плавающей точкой
%o – восьмеричное
%s – строка символов
%x – шестнадцатеричное
%% - %
%p – указатель
и др.
Пример:
print(“Hi %c %d %s”,’c’,10,”there!”);
получится:
Hi c 10 there!
Для форматированного ввода с консоли используется функция scanf:
scanf (“control string”,argument list);
Список аргументов должен содержать адреса переменных соответствующих типов, куда будут помещены значения.
Пример:
int count;
scanf(“%d”,&count);
Массивы
Массив объявляется путём указания после имени переменной квадратных скобок
тип имя_переменной [размерность];
Тип определяет тип элементов массива. Пример:
int s[10]; - массив из 11 целых чисел.
char mas[20]; - строка на 20 символов
Индексация элементов начинается с нуля, т.е. к элементам данного массива можно обратиться как sample[0],…,sample[9].
В C++ не выполняется проверка выхода за границы массива, поэтому при программировании нужна аккуратность.
В следующем примере массив с заполняется случайными числами в интервале [0, 99]
#include <stdlib.h>
#include <time.h>
int i, c[10]; randomize();
for(int i=0;i<10;i++) c[i]=random(100);
При объявлении массива можно его сразу инициализировать:
int a[5]={3,5,7,11,13};
Если список значений короче длины массива, то остальные элементы инициализируются нулями.
Аналогично объявляются многомерные массивы:
тип имя [size1][size2]…[sizeN]
Пример:
int t[4][10]; // объявляется двумерный массив из 40 элементов (4 строки, 10 столбцов)
обратиться к произвольному элементу массива можно так t[i][j]
!!! не перепутайте c Pascal t[i,j] –неправильная запись, но компилятор при этом ошибку не выдает (вспомним про операцию «запятая»)
Многомерные массивы также можно инициализировать:
int sqrs[5][2] =
{1,1,
2,4,
3,9,
4,16
5,25};
Если одномерный массив инициализируется при объявлении, то его размер можно не указывать – компилятор сам его подсчитает:
int a[]={1,2,3};
Многомерный массив можно рассматривать как массив, элементы которого, в свою очередь. являются массивами. Например: int a[5][10];
a[0], a[1], … ,a[4] – одномерные массивы (строки матрицы a)