Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Пособие_новое.DOC
Скачиваний:
7
Добавлен:
28.09.2019
Размер:
486.4 Кб
Скачать

Void main(void)

{

int value=255;

printf("Десятичное значение %d в 8-ричном виде %5o\n",value,value);

printf("Десятичное значение %d в 16-ричном виде %4x\n",value,value);

printf("Десятичное значение %d в 16-ричном виде %4X\n",value,value);

}

Неправильное использование спецификации преобразования приводит к неверному результату (см.пример 7.2):

//Пример 7.2.

//Спецификаторы преобразования

#include <stdio.h>

Void main(void)

{

unsigned int value=42000;

long int one_million=1000000;

printf("Вывод 42000 как unsigned %u\n",value);

printf("Вывод 42000 как int %d\n",value);

printf("Один миллион равен %ld\n",one_million);

printf("Один миллион равен %d\n",one_million);

}

Вывод значения 42000 типа unsigned по формату %d дает результат -23536, а значения 1000000 типа long int по формату %d  — 16960.

В конце управляющей строки format находится символ \n, который называется управляющей последовательностью. В табл. 7.2 представлены некоторые символы.

Таблица 7.2 — Управляющая последовательность символов

Символ

Наименование

Выполняемая операция

\n

Новая строка

Осуществляет переход на новую строку

\t

Табуляция

Переход на семь позиций вправо

\b

Шаг назад

Сдвиг на одну позицию влево

\r

Возврат каретки

Возврат к началу строки

\f

Подача бланка

Протяжка на одну страницу

\\

Обратная косая

черта

( \ )

\’

Апостроф

( ‘ )

\”

Кавычки

( “ )

Функция scanf() осуществляет форматированный ввод с клавиатуры. Прототип этой функции

Int scanf(char *format[,argument,...]);

находится в библиотечном файле <stdio.h>. Управляющая строка символов format содержит спецификаторы преобразования. Функция scanf() использует те же спецификаторы преобразования, что и printf(). Отличия лишь в том, что отсутствует спецификатор %g и для целых типа short применяется спецификатор %n. Argument — это имя переменной, которой будет присвоено введенное значение. Перед аргументом в функции scanf() используется знак & (амперсант), который обозначает: принять число и разместить его по адресу (см. пример 4.5). Знак & не пишется, если вводится значение символьной переменной (см. пример 5.5).

    1. Функции для работы с файлами

Система ввода-вывода языка С поддерживает интерфейс, не зависящий от того, какое в действительности используется физическое устройство ввода-вывода (клавиатура, дисплей, диск). Стандарт ANSI языка С связывает каждое из устройств ввода-вывода с логическим устройством, называемым потоком. В языке С существует два типа потоков: текстовый (text) и двоичный (binary). Текстовый поток — это последовательность одиночных или парных символов (табуляция, возврат каретки и др.). Двоичный поток — это последовательность байтов, которые соответствуют тому, что находится на внешнем устройстве. Файл — это способ хранения информации на физическом устройстве.

Рассмотрим пример 7.3, в котором открывается файл, содержащий целые числа (первое число — это общее количество значений в файле), значения присваиваются элементам линейного массива vect.

// Пример 7.3.

// Работа с файлом, чтение из файла целых чисел

#include <stdio.h>

#include <stdlib.h>

#define LINE 3000

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]