Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы


Скачать 449.68 Kb.
НазваниеЗадача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы
страница6/6
ТипЗадача
1   2   3   4   5   6
Функции printf () и scanf ()

  • осуществляют форматированный вывод и ввод в стандартные потоки (по умолчанию на консоль)

  • прототипы в файле STDIO.H

int printf ( char * управляющая строка , arg… );

int scanf ( char * управляющая строка , arg…) ;

  1. первый параметр всегда символьная строка, содержащая некоторые символы и команды (спецификаторы) формата сообщающие какие данные надо вводить или как надо выводить аргументы.

Спецификаторы задаются с помощью знака % с буквами и цифрами

  1. последующие параметры (их переменное число)- аргументы

для printf – это значения выражений, в частности числа, переменные, константы , строки.

для scanf – это список адресов переменных типы которых, указанных в строке формата для каждого аргумента последовательно ( первый формат соответствует первому аргументу, второй – второму и т. д.)
printf

Функция printf() возвращает общее число выводимых значений при успешном выводе

Int result;

Result =printf (“ … \n”, …)
int

%d , %i – для вывода десятеричных значений;

%0 - в восьмеричном формате;

% x, % X –в шестнадцатеричном;
int v = 255;

printf (“ значение %d в восьмеричном формате %0\n”, v, v )

printf('' значение %d в шестн. формате %x и %X\n’’, v, v,v)

значение 255 в восьмеричном формате 377

значение 255 в шестн. формате ff и FF

unsigned int

%u unsigned int a = 42000

printf (“%u % d\n’’, a, a ) 42000 -23536

long float shot unsigned long double

long int % ld % f % hu % lf

символы % и 0 и x ,X

%% %#0 %#x %#X
char

% c printf ( “ буква %c\n’’ , ‘A’); буква А

printf ( “ буква %c\n’’ , 65); буква А
Вывод чисел с плавающей точкой в экспоненциальном виде: %e или %E

Float a=3.14159 , b= 2.0031;

Printf (‘’ %e %E” , a, b )

3.14159e +00 2.0031E+00

на усмотрение машины %g

printf ( “ %g\n’’, 0.1234) ; printf (“%g\n”,0.000001234)

    1. 1.234e-06

Строки

%s char t [255]=” Pascal”;

printf ( “ Название-%s\n”, t)

Название – Pascal

Вывод указателей

%p , %n

int v ; printf(“Адрес переменной=%p\n”, &v)

Адрес переменной= FFF4

Вывод числа со знаком(положительным и отрицательным)

%+d %+f int a=5, b=-5; float c= 1.5, d=-1.5;

printf(“%+d %+d %+f %+f ” , a, b , c , d );

+5 -5 +1.5 -1.5

Количество символов- мест для вывода

Int v = 5;

Printf( “%1d \n”,v) 5

Printf( “%2d \n”,v) 5

Printf( “%3d \n”,v) 5

Если дано меньше, чем надо для вывода целого , символьной строки , добавляется необходимые места

Вывод целых с ведущими нулями

Printf( “ %01d\n”, v) 5

Printf( “ %02d\n”, v) 05

Форматирование чисел с плавающей точкой

  1. число указывает общее количество символов для вывода

  2. число указывает количество символов справа от десятичной точки

float f =1.23456;

printf( “ %8.1f\n”,f) _ _ _ _ _ 1.2

printf( “ %8.3f\n”,f) _ _ _ 1.235

форматирование экспоненциального представления аналогично:

printf( “ %12.1 e\n”, f) _ _ _ _ _ 1.2e+00

printf( “ %12.5 e\n”, f) _ 1.23456e+00

Выравнивание влево и вправо:

Printf ( “ %5d , 5) _ _ _ _ 5

Printf ( “ %-5d , 5) 5 ­_ _ _ _

Scanf()

Функция производит ввод данных с клавиатуры в переменные , адреса которых задаются аргументами (arg)

Возвращаемое значение функцией – количество успешно введенных и присвоенных значений

Управляющая строка содержит спецификации формата, пробелы и др. символы.

Спецификации:

%c - чтение символа

%d – чтение десятичного целого

%i – чтение десятичного целого

%e- чтение числа типа float

%h- чтение числа типа short int

%0- чтение восьмеричного числа

%s- чтение строки

%x- чтение шестнадцатеричного числа

%p- чтение указателя

-Спецификация формата не содержит пробелов.

Пробельные символы - пробелы ( _ ), символы табуляции ( ‘\t’) , новой строки ('\n') перевода каретки ('\r’) - разделители между двумя вводимыми символами. Символы очередного значения выделяются до первого пробельного символа.

Другие символы (ненулевые) указывают на чтение и отбрасывание этих символов, это любые символы , которые надо игнорировать.

Scanf(“%dplus%d” , &i , &j) поток символов 5plus10

i=5 , j = 10
Переменные должны указываться адресом:

Scanf(“%d %d “, &i , & j);

Scanf(“%5s “, str)

Возможно задать множество поиска - список символов в квадратных скобках

Char s[10],t[10];

Scanf (“%[0123456789]%s’’,s ,t )

Поток ввода : 123прлаы456

S= “123” t= “прлаы456”
Ввод – вывод записей
Используется бинарный режим обмена с файлом , состоящим из записей фиксированной длины. В одном обмене может участвовать одна и более записей.

Чтение записей из файла в переменные ОП:
int fread ( void*ptr , unsigned size ,int k, FILE*stream)
Ptr- адрес ОП переменной любого типа, в которую читается запись

Size- длина записи в байтах

K- количество записей

Stream- имя указателя на файловый поток , связанного с файлом из которого считывают данные
Вывод записей в файл:
int fwrite ( const void*ptr , unsigned size ,int k, FILE*stream)
Из переменной ОП , адресуемой ptr , считываются k записей и записываюся в файл, связанный с потоком stream.
Возвращаемое значение всех этих функций - это количество прочитанных или записанных значений ( или записей).

Дополнительные функции:
int feof ( FILE*stream) - возвращает 0 , если конец файла не достигнут и не

нуль – если достигнут
int fseek(FILE*stream, long offset , int n) – устанавливает указатель для чтения или записи в нужное место

offset -смещение от начала, которое задается параметром n
SEEK_SET=0

SEEK_CUR=1

SEEK_END=2
Возвращает 0 – если указатель перемещен успешно и не ноль в обратном случае.
void rewind (FILE*stream) – устанавливает указатель на начало файла.

Массивы файлов
Если надо одновременно работать с несколькими файлами , целесообразно использовать массивы файлов.

FILE*f[k] //– объявление массива файлов
//Удобно формировать имена файлов, включающие номер файла.

Char* s =new char[14];

Char*s1=new char [4] ;

For(int i=0; i
{strcat ( strcat ( strcpy ( s , «file»), itoa( i , s1 ,10) ) , «.dat»)

f[i]=fopen(s, «w»);} …

Аналогично можно определить и с помощью классов. Определить массив объектов класса.
ofstream fout[i];

Char* s =new char[14];

Char*s1=new char [4] ;

For(int i=0; i
{strcat ( strcat ( strcpy(s , «file»), itoa( i , s1 ,10) ) , «.dat»)

fout[i].open(s, ios::out ); }…




1   2   3   4   5   6

Похожие:

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconПриказ от 7 сентября 2005 года об утверждении структуры и форматов...
Федеральной налоговой службы от 27 июня 2005 г. N 7н/саэ-3-10/285 "Об обмене информацией в электронном виде между управлениями Федерального...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconПрограмма (задача, мероприятие): Федеральная целевая программа развития...
Ректор фгбоу впо “Саратовский государственный университет имени Н. Г. Чернышевского”

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconВы услышите 6 высказываний. Установите соответствие между высказываниями каждого говорящего
Установите соответствие между высказываниями каждого говорящего a-f и утверждениями^ данными в списке 1-7, Используйте каждое утверждение,...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы icon1 Вы услышите 6 высказываний. Установите соответствие между высказываниями каждого говорящего A
Установите соответствие между высказываниями каждого говорящего a f и утверждениями, данными в списке 1 Используйте каждое утверждение,...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconАудирование вы услышите 6 высказываний. Установите соответствие между...
Установите соответствие между высказываниями каждого говорящего A–F и утверждениями, данными в списке 1 Используйте каждое утверждение,...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconК Протоколу об обмене информацией в электронном виде между налоговыми...
Настоящие Правила определяют порядок заполнения заявления о ввозе товаров и уплате косвенных налогов (далее Заявление) по форме Приложения...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconМежду службами третьих доверенных сторон стран участников Конвенции...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconВы услышите 6 высказываний. Установите соответствие между высказываниями...
Вы услышите 6 высказываний. Установите соответствие между высказываниями каждого говорящего A–F и утверждениями, данными в списке...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconВы услышите 6 высказываний. Установите соответствие между высказываниями...
Установите соответствие между высказываниями каждого говорящего 1–6 и утверждениями, данными в списке A–G. Используйте каждое утверждение,...

Задача программиста установить соответствие между последовательностью байтов потока и участвующими в обмене типизированными объектами программы iconВы услышите 6 высказываний. Установите соответствие между высказываниями...
Установите соответствие между высказываниями каждого говорящего 1–6 и утверждениями, данными в списке A–G. Используйте каждое утверждение,...

Вы можете разместить ссылку на наш сайт:


Все бланки и формы на filling-form.ru




При копировании материала укажите ссылку © 2019
контакты
filling-form.ru

Поиск