
- •Санкт-Петербург
- •Void number(int a) // функция, выводящее целое число в четырех разных форматах
- •Void number(float a) // функция, выводящая вещественное число в трех разных форматах
- •Void number(int width, int precision, float a) // функция, выводящая вещественное число в трех разных форматах, ширина поля и точность задаются пользователем
МИНОБРНАУКИ РОССИИ
Санкт-Петербургский государственный
электротехнический университет
«ЛЭТИ» им. В.И. Ульянова (Ленина)
Кафедра Электротехнологической и преобразовательной техники
отчет
по лабораторной работе № 7
по дисциплине «Информационные технологии»
Тема: Форматное преобразование данных
Студент гр. 0421 |
|
Токарев А.А. |
Преподаватель |
|
Чмиленко Ф.В. |
Санкт-Петербург
2021
Цель работы: Исследование библиотечных функций для ввода/вывода и преобразования данных языка С.
Задания:
Преобразование целых чисел
Преобразование чисел с плавающей точкой
Преобразование символов и строк
Форматированный вывод в строку
Форматированный ввод из строки
Форматирование таблицы строк из данных разных типов
Функции преобразования данных
Дополнительные задания:
Форматирование потокового вывода языка С++
Ход работы:
Задание 1.
Создадим программу, в которой реализуем ввод с клавиатуры и вывод на экран целых чисел в десятичном (без знака и со знаком), восьмеричном и шестнадцатеричном формате:
#include <stdio.h>
#include <iostream>
using namespace std;
void number(int a) // функция, выводящее целое число в четырех разных форматах
{
cout << "Введенное число в десятичном беззнаковом формате: ";
printf("%u\n", a); // вывод числа в десятичном беззнаковом формате, перенос строки
cout << "Введенное число в десятичном знаковом формате: ";
printf("%d\n", a); // вывод числа в десятичном знаковом формате, перенос строки
cout << "Введенное число в восьмеричном беззнаковом формате: ";
printf("%o\n", a); // вывод числа в восьмеричном беззнаковом формате, перенос строки
cout << " Введенное число в шестнадцатеричном беззнаковом формате: ";
printf("%x\n", a); // вывод числа в шестнадцатеричном беззнаковом формате, перенос строки
}
int main()
{
int a, b, c, d;
system("chcp 1251");
system("cls");
cout << "Введите число в десятичном беззнаковом формате: " << endl;
scanf("%d", &a);
number(a);
cout << "Введите число в десятичном знаковом формате: " << endl;
scanf("%d", &b);
number(b);
cout << "Введите число в восмеричном беззнаковом формате: " << endl;
scanf("%o", &c);
number(c);
cout << "Введите число в шестнадцатеричном беззнаковом формате: " << endl;
scanf("%x", &d);
number(d);
system("pause");
return 0;
}
Рисунок 1 – Результат работы программы по вводу/выводу целых чисел в различных форматах
Немного переработаем программу так, чтобы при выводе числа в десятичном формате без знака она выводила как минимум 6 знаков, в случае если в числе знаков меньше, остальные знаки будут заполняться пробелами. Также, при выводе числа в десятичном виде со знаком сделаем так, чтобы обязательно выводился плюс перед положительными числами, при выводе числа в восьмеричном формате сделаем так, чтобы перед числом, если оно меньше, чем четыре знака, выводились нули. При выводе числа в шестнадцатеричном виде, сделаем так, чтобы она выводила как минимум 8 знаков, в случае если в числе знаков меньше, остальные знаки будут заполняться пробелами и, чтобы число было представлено в альтернативной форме:
#include <stdio.h>
#include <iostream>
using namespace std;
Void number(int a) // функция, выводящее целое число в четырех разных форматах
{
cout << "Введенное число в десятичном беззнаковом формате: ";
printf("%6u\n", a); // вывод числа в десятичном беззнаковом формате, перенос строки, 6 знаков, если знаков меньше – остальное - пробелы
cout << "Введенное число в десятичном знаковом формате: ";
printf("+%d\n", a); // вывод числа в десятичном знаковом формате, перенос строки, всегда знак «+», если число положительное
cout << "Введенное число в восьмеричном беззнаковом формате: ";
printf("%04o\n", a); // вывод числа в восьмеричном беззнаковом формате, перенос строки, если число меньше, чем четыре знака – заполнить нулями все место до 4-х знаков
cout << " Введенное число в шестнадцатеричном беззнаковом формате: ";
printf("%#8x\n", a); // вывод числа в шестнадцатеричном беззнаковом формате, перенос строки, 8 знаков, если знаков меньше – остальное – пробелы, число в альтернативном виде (перед числом 0х)
}
int main()
{
int a, b, c, d;
system("chcp 1251");
system("cls");
cout << "Введите число в десятичном беззнаковом формате: " << endl;
scanf("%d", &a);
number(a);
cout << "Введите число в десятичном знаковом формате: " << endl;
scanf("%d", &b);
number(b);
cout << "Введите число в восмеричном беззнаковом формате: " << endl;
scanf("%o", &c);
number(c);
cout << "Введите число в шестнадцатеричном беззнаковом формате: " << endl;
scanf("%x", &d);
number(d);
system("pause");
return 0;
}
Рисунок 2 – Результат работы программы по вводу/выводы целых чисел с дополнительным форматированием
Задание 2.
Разработаем программу, в которой реализуем ввод с клавиатуры и вывод на экран вещественных чисел в обычном и экспоненциальном форматах:
#include <stdio.h>
#include <iostream>
using namespace std;