Модификаторы спецификаций преобразования
Общий вид модификаторов спецификаций преобразования
%[выравнивание][ширина][точность]символ спецификатора
его символ м о ж е т б ы т ь или нет
Хочу увидеть колонки цифр, выровненные по левому или правому краю. Стандартно – по правому, а если хочу по левому, то ставлю -.
10 10
2 2
123 123
Ширина – это количество позиций под число.
Пример: число 336
|--336|
|336--|
Если взять, например ширину: |%2d|, в этом случае для целых чисел даже с большим, чем 2 количеством разрядов, ничего не усекается, но ровных колонок не будет. Поэтому лучше брать число позиций с запасом.
%+d в этом случае число выводится обязательно со знаком + или -. Если перед d не поставить +, все равно у отрицательных чисел – будет выводиться, а перед положительными будет пробел.
%#x – печатается признак системы счисления (0 или Ох – для 8- или 16-ричной сс)
Точность задает количество цифр после запятой, в плавающем формате.
Например: 4,236
|%f | |4.523498|
|%4.2f | |4.52| (4- это ширина, 2 – количество знаков после запятой)
|%6.1f | |---4.5|
|%-6.1f | |4.5---|
При усечении дробной части происходит округление.
Для строк:
|%15s| |--строка текста|
|%-15s| |строка текста--|
Можно использовать точность и в строковых данных:
|%15.6s| |---------строка|
9 6
|%-15.6s| |строка---------|
%[-][ширина]d – выравнивание по влевой границе
%[-][ширина][.точность]f
%[-][+][ширина]d – целое со знаком
%[-][#][ширина][l]u(o,x) – целое без знака, выводится 0 или 0х для восьмиричной или шестнадцатиричной системы счисления
%[-][+][#][ширина][.точночть]f(e, g) - # вывод дес.точки даже при нулевой точности. По умолчанию точность 6 цифр.
Цифры - ширина поля. Если число больше, то оно выходит за ширину поля.
%4.2f - количество печатаемых цифр после запятой 2, поле шириной 4 позиции.
/%d/ /3.36/ - "выбор по умолчанию"
%2d /336/
%10d / 336/
%-10d /336 /
%f /1234.560059/ 1234.56
%e /1.234560E+03/
%4.2f /1234.56/
%3.1f /1234.6/
%10.3f / 1234.560/
%10.3e / 1.234E+0.3/
/%s/ /'Выдающееся исполнение'/ 22 c.
/%25.s / Выдающееся исполнение'/
% 25.5s / Выдаю/
%-25.5 s /Выдаю /
% d 336
% o 520
% x 150
% d -336
% u 65200 от 32768-65536 - отрицательные числа
65535- -1 65536 - 336 = 65200
printf (" %d %c ", 'A', 'A'); //На экране 65 A
2. sсanf(). Функция ввода данных с клавиатуры.
Функция scanf ( ) предназначена для получения слова, а не строки, причем только до первого пустого символа, табуляции, новой строки.
scanf ("Управляющая строка", список аргументов);
Используются только спецификаторы и управляющие символы, текста не должно быть. В качестве аргументов указываются адреса переменных.
Пример: scanf("%i",&x);
& -операция взятия адреса (адрес переменной х). Операцию & не пишут, когда вводят массив символов! У функции scanf нет спецификации %g, %f и %e эквивалентны. Для чтения целых чисел типа short используют %h.
Пример: scanf (“%d %d %d“, &x, &y, &z);
Домашнее задание: 1) переписать задачу с функцией переработанную с printf и scanf;
2)рассчитать: средний заработок семьи, площадь прямоугольника, объёмы фигур, решение уравнений.
3. Функции ввода/вывода одного символа с клавиатуры getchar(), putchar()
Если необходимо, например, ввести один символ: да или нет (Y, N), то применяю именно функцию getchar().
getchar() – в программу
getchar() – на экран.
Объявляются они в заголовочном файле stdio.h. Эти функции называют функциями буферизированного вида
# include <stdio.h>
void main()
{
char simb;
simb = getchar(); //нажмите enter
}
Код буквы будет помещен в переменную simb. Обе функции можно объединить в одну функциюgetchar(putchar());
# include <stdio.h>
void main()
{
char ch;
ch = getchar(); тоже самое
putchar(ch); putchar (getchar());
}
4. Функции небуфиризированного ввода с клавиатуры getch(); getche();
(прямой ввод на экран без нажатия клавиши ENTER). Объявляются в заголовочном файле <conio.h>.
char ch=getch(); // ввод без эхоотображения.
char ch=getche(); //с эхоотображением на экране.
9. ВВОД/ВЫВОД В ПОТОК С++
Система ввода/вывода – неотъемлемая часть среды программирования С++, и она занимает в языке особое место.
В заголовочном файле iostream.h содержаться следующие объявления одного потока ввода и трех потоков вывода:
extern istream_withassign _Cdecl cin; //Объект потока ввода
extern ostream_withassign _Cdecl cout; //Объект потока вывода
extern ostream_withassign _Cdecl cerr; //Объект потока вывода ошибок
extern ostream_withassign _Cdecl clog; //Объект буферизованного потока вывода ошибок
Поток является промежуточным звеном между программой и устройством ввода и вывода. Поток может быть присоединён к различным устройствам: консоли, принтеру, фиктивному устройству, а так же к файлам на диске.
cin >> v; // Прочитать из стандартного потока ввода
cout << v; // Записать в стандартный поток вывода
Обычно стандартный поток вывода cout присоединен к экрану терминала. Простейшая программа, использующая операцию вывода, имеет следующий вид:
#include <iostream..h>
void main(void)
{
cout << “Hello, world!”;
}
Приоритет операций << и >> позволяет помещать в оператор вывода арифметические выражения, не прибегая к использованию скобок, зато при использовании логических выражений или операций присваивания скобки использовать необходимо:
cout << “x+y =” << x+y <<”; x&y =” << (x&y) << “\n”;
Для ввода данных в программу используется стандартный поток ввода. Он имеет много общего с выводом данных. Обычно стандартный поток ввода соединен с клавиатурой cin.
int i;
float y;
cin >> i >> f ;
Дата добавления: 2016-02-02; просмотров: 792;