Компьютерные курсы в Новосибирске АБВ Компьютерные курсы (383) 380-18-55 |
Ввод/вывод данных в языке Си. Функции printf/scanf![]() Функции – это подпрограммы в Си, выполняющие определённые операции. Есть функции в стандартной библиотеке, но можно добавить в программу свои. Функция может возвращать значение, которое может быть использовано в программе. Например, функция printf возвращает количество выведенных символов, а scanf – количество распознанных элементов. Функции принимают аргументы, которые являются параметрами для выполнения. Аргументы перечисляются через запятую. В функции printf первым аргументом является выводимая строка, в которую вставляются, а вторым и последующими аргументами – эти самые переменные. Спецификаторы формата в первом аргументе определяют типы переменных и их форматирование. 1-му спецификатору формата соответствует 2-й аргумент, второму – 3-ий, и т.д. Общий вид спецификаций формата: %[флаг][ширина][.точность][h|l|L]тип Так как знак процента является управляющим, то чтобы вывезти его, нужно прописать его дважды. Подробнее форматирование рассмотрим позже, данные могут выводиться и при отсутствии элементов, условно поставленных в квадратные скобки. Поэтому минимальный вид спецификаторов формата таков: %тип Рассмотрим некоторые их типы: c Символ s Строка символов d, i Целое десятичное со знаком o Целое восьмеричное u Целое десятичное без знака x, X Целое шестнадцатеричное f Дробное число в фиксированном формате e, E Дробное число в научном формате g, G Дробное число в научном или фиксированном формате p Указатель (в шестнадцатеричном виде) Пример спецификаторов формата: %d – целое число %s - строка Аналогичные спецификаторы применяются и в scanf, первый аргумент определяет вид поступающих данных, только второй и последующий аргументы функции – указатели на переменные. Это необходимо для того, чтобы функция получила доступ к самим данным, а не к копии переменной, как это делается в случае передачи переменной в функцию. Чтобы получить указатель на переменную, необходимо добавить перед ней знак &. Итак, перейдём к практике. Рассмотрим следующий пример: // так обозначаются комментарии, они не учитываются компилятором #include int main() // главная функция { int i; printf("Enter integer number: ", i); scanf("%d", &i); // получение числа из стандартного ввода в переменную i i = i*i+3; // действия над переменной printf("Result: %d\n", i); // вывод результата, \n означает перевод строки return 0; } Данная программа получает число, возводит его в квадрат и прибавляет 3. Проверим работу программы. При запуске она выдаёт запрос: «Enter integer number:». Введите 3. Вывод программы должен быть таким: «Result: 12». Можно проверить работу программы и на других числах. Теперь рассмотри форматирование выводимых данных. Создайте новую программу и объявите переменную x типа float и значением с 2 знаками после запятой (например, 2.19). Мы будем применять различное форматирование при выводе этой переменной. При присваивании дробного числа использовать десятичную точку (.), а не запятую (,). Рассмотрим некоторые примеры форматирования вывода функции printf. Например, строка printf("Result: %.1f\n", x); выводит число x с точностью 1 знак после запятой. printf("Result: %10.3f\n", x); точность – 3, количество символов, отведённых на число – 10. Итак, мы рассмотрели функции ввода/вывода printf и scanf, а так же форматирование выведенных данных. |