Лекция 2 Функции библиотек языка C

advertisement
Лекция 2
Функции библиотек языка C
stdio.h
• Заголовочный файл стандартной
библиотеки языка C.
• Содержит определения констант,
объявления функций и типов для операций
ввода/вывода.
printf() и scanf()
• printf() – функция позволяет выводить на
экран информацию согласно заданному
формату.
• scanf() – функция позволяющая считывать с
клавиатуры информацию согласно
заданному формату.
Форматы printf и scanf
•
•
•
•
•
•
•
•
%d – десятичный вывод (int)
%ld – десятичный длинный вывод (long int)
%u – десятичный (unsigned int)
%o – восьмеричный (octet)
%f или %g – дробный
%6d – печатать в 6 позиций
%.2f – печатать 2 знака после запятой
%6.2f – печатать 2 знака после запятой в поле на 6
позиций
• %s – (строка char[]) вывод любого массива символов
до завершающего нуля
Форматы printf и scanf
Escape-последовательности
Экранирующие последовательности
• \n – new line
• \r – возврат каретки
• \t – табуляция
• \b – backspace
• \" и \' – кавычки
• \\ – символ \
• \a – alarm (звуковой сигнал)
Сложение двух чисел
#include <stdio.h>
int main ()
{
int a, b;
printf ("Введите два числа: ");
scanf ("%d%d", &a, &b);
printf ("%d\n", a + b);
return 0;
}
Математические функции
• В <math.h> описано множество математических
функций. Входные и выходные данные типа
double.
sin(х)
cos(x)
atan2(y, х)
ехр(х)
log(x)
log10(x)
pow(x, y)
sqrt(х)
синус х, х в радианах.
косинус х, х в радианах.
арктангенс y/х, y и х в радианах.
экспоненциальная функция еx.
натуральный (по основанию е) логарифм х (х>0).
обычный (по основанию 10) логарифм х (х > 0).
степень xy.
корень квадратный х (х > 0).
fabs(x)
абсолютное значение x.
ctype.h
В <ctype.h> описаны функции для проверки и изменения
символьной информации:
• isalpha(c); – возвращает не нулевое значение, если
аргумент является буквой
• isdigit(c); – возвращает не нулевое значение, если
аргумент является цифрой
• isspace(c); – возвращает не нулевое значение, если
аргумент является пробельным символом
(' ', '\t', '\n', '\r' и др.)
• islower(c); – возвращает не нулевое значение, если
аргумент является символом в нижнем регистре
• isupper(c); – возвращает не нулевое значение, если
аргумент является символом в верхнем регистре
• toupper(c); – переводит символ в верхний регистр
• tolower(c); – переводит символ в нижний регистр
Ввод символов через getchar()
• Стандартная библиотека включает несколько
функций для чтения и записи одного символа.
Простейшие из них — getchar и putchar. За
одно обращение к getchar считывается
следующий символ ввода из текстового
потока, и этот символ выдается в качестве
результата. Так, после выполнения
с = getchar()
переменная c содержит очередной символ
ввода.
Вывод символов через putchar()
• Обращение к putchar приводит к печати
одного символа. Так,
putchar(c)
напечатает содержимое целой переменной c
в виде символа (обычно на экране). Вызовы
putchar и printf могут произвольным образом
перемежаться. Вывод будет формироваться в
том же порядке, что и обращения к этим
функциям.
Константа EOF
• EOF является индикатором операционной системы,
означающим, что данные в источнике закончились.
Источниками данных обычно являются файлы и
потоки.
• EOF (аббревиатура от end of file — конец файла) —
целая константа, определенная в <stdio.h>. Какое
значение имеет эта константа — неважно, лишь бы
оно отличалось от любого из возможных значений
типа char.
• Для указания терминалу в UNIX и LINUX «EOF»
следует воспользоваться комбинацией клавиш
Ctrl+D. В Windows — Ctrl+Z.
Копирование ввода на вывод 1
#include <stdio.h>
int main()
{
int c;
c = getchar();
while (c != EOF)
{
putchar (c);
c = getchar();
}
return 0;
}
Копирование ввода на вывод 2
#include <stdio.h>
int main()
{
int c;
while ((c = getchar()) != EOF)
putchar (c);
return 0;
}
Подсчёт символов 1
#include <stdio.h>
int main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf ("%ld\n", nc);
return 0;
}
Подсчёт символов 2
#include <stdio.h>
int main()
{
double nc;
for (nc = 0; getchar() != EOF; ++nc)
;
printf ("%.0f\n", nc);
return 0;
}
Подсчет строк входного потока
#include <stdio.h>
int main()
{
int с, nl;
nl = 0;
while ((с = getchar()) != EOF)
if (c == '\n')
++nl;
printf ("%d\n", nl);
return 0;
}
Таблица ASCII
Download