Нижегородский государственный университет им. Н.И.Лобачевского
Опубликован: 25.11.2008 | Доступ: свободный | Студентов: 9320 / 1222 | Оценка: 4.06 / 3.66 | Длительность: 21:16:00
Лекция 4:

Системные данные числового типа

< Лекция 3 || Лекция 4: 12345 || Лекция 5 >

3.7. Примеры программ вывода числовых данных

Пример 1. Вывод однобайтовых числовых значений

#include <iostream.h>
#include <stdio.h>
#include <conio.h>

int main()
{ char ch1 = 69;
  char ch2 = -128;
  unsigned char uch1 = 70;
  unsigned char uch2 = 129;
  __int8 i8_1 = 71;
  __int8 i8_2 = -127;
  printf("\nch1=%d  ch2=%d",ch1,ch2);
  printf("\nuch1=%u uch2=%u",uch1,uch2);
  printf("\ni8_1=%i i8_2=%i\n",i8_1,i8_2);
  cout << "ch1=" << ch1 << endl;
  cout << "ch1=" << (int)ch1 << endl;
  cout << "ch2=" << ch2 << endl;
  cout << "ch2=" << (int)ch2 << endl;
  cout << "i8_1=" << i8_1 << endl;
  cout << "i8_1=" << (int)i8_1 << endl;
  cout << "i8_2=" << i8_2 << endl;
  cout << "i8_2=" << (int)i8_2 << endl;
  getch();
  return 0;
}
//=== Результаты работы ===
ch1=69  ch2=-128
uch1=70 uch2=129
i8_1=71 i8_2=-127
ch1=E
ch1=69
ch2=А
ch2=-128
i8_1=G
i8_1=71
i8_2=Б
i8_2=-127

По результатам работы примера 1 видно, что форматный вывод однобайтовых числовых данных никаких затруднений не вызывает. Однако попытка вывести эти же значения в потоке без приведения значений символьных переменных к целочисленному типу (преобразование ( int )) разумных результатов не дает. Вместо этого в поток выводятся символы, коды которых совпадают с однобайтовыми числовыми значениями.

Пример 2. Вывод однобайтовых числовых значений

#include <stdio.h>
#include <conio.h>

int main()
{
  char ch1 = -5, ch2 = -127;
  unsigned char uch1 = 25, uch2 = 255;
  printf("With sign :\n");
  printf("-5=%3d(10) -127=%3d(10)",ch1,ch2);
  printf("\nOhne sign :\n");
  printf("25=%#3o(8) %#3x(16) %3d(10)",uch1,uch1,uch1);
  printf("\n255=%#3o(8) %#3x(16) %3d(10)",uch2,uch2,uch2);
  getch();
  return 0;
}
//=== Результаты работы ===
With sign :
-5= -5(10) -127=-127(10)
Ohne sign :
25=031(8) 0x19(16)  25(10)
255=0377(8) 0xff(16) 255(10)

В примере 2 однобайтовые числовые значения выданы по формату в виде десятичных, восьмеричных и шестнадцатеричных данных (основание системы записано в круглых скобках после самого значения).

Пример 3. Вывод коротких и длинных вещественных данных

#include <stdio.h>
#include <conio.h>

int main()
{
  float f1=3.14159265, f2=20000000;
  double d1=3.14159265, d2=20E+125;
  printf("\nf1=%10.8f f2=%f", f1,f2);
  printf("\nf1=%e f2=%e", f1,f2);
  printf("\nf1=%g f2=%g", f1,f2);
  printf("\nd1=%12.9f d2=%g", d1,d2);
  printf("\nd1=%12.9e d2=%G", d1,d2);
  getch();
  return 0;
}
//=== Результаты работы ===
f1=3.14159274 f2=20000000.000000
f1=3.141593e+00 f2=2.000000e+07
f1=3.14159 f2=2e+07
d1= 3.141592650 d2=2e+126
d1=3.141592650e+00 d2=2E+126

Пример 4. Управление форматом при выводе в поток

#include <iostream.h>
#include <iomanip.h>
#include <conio.h>

int main()
{ int i=15, j=6, k;
  float v=1.23456, x=3.149;
  cout << hex;
  cout << "i=" << i << " j=" << j << " x=" << x << " v=" << v;
  cout.fill('*');
  cout << "\ni=" << setw(6) << i << " j=" << j << endl;
  cout << setprecision(3) << x << " v=" << v << endl;
  cout.width(10);
  cout << x << ' ' << j << endl;
  for(k=0; k<8; k++)
    cout << setprecision(k) << v << endl;
  getch();
  return 0;
}
//=== Результаты работы ===
i=f j=6 x=3.149 v=1.23456
i=*****f j=6
3.15 v=1.23
******3.15 6
1.23456
1
1.2
1.23
1.235
1.2346
1.23456
1.23456
< Лекция 3 || Лекция 4: 12345 || Лекция 5 >
Alexey Ku
Alexey Ku

Попробуйте часть кода до слова main заменить на 

#include "stdafx.h" //1

#include <iostream> //2
#include <conio.h>

using namespace std; //3

Александр Талеев
Александр Талеев

#include <iostream.h>
#include <conio.h>
int main(void)
{
int a,b,max;
cout << "a=5";
cin >> a;
cout <<"b=3";
cin >> b;
if(a>b) max=a;
else max=b;
cout <<" max="<<max;
getch();
return 0;
}

при запуске в visual express выдает ошибки 

Ошибка    1    error C1083: Не удается открыть файл включение: iostream.h: No such file or directory    c:\users\саня\documents\visual studio 2012\projects\проект3\проект3\исходный код.cpp    1    1    Проект3

    2    IntelliSense: не удается открыть источник файл "iostream.h"    c:\Users\Саня\Documents\Visual Studio 2012\Projects\Проект3\Проект3\Исходный код.cpp    1    1    Проект3

    3    IntelliSense: идентификатор "cout" не определен    c:\Users\Саня\Documents\Visual Studio 2012\Projects\Проект3\Проект3\Исходный код.cpp    6    1    Проект3

    4    IntelliSense: идентификатор "cin" не определен    c:\Users\Саня\Documents\Visual Studio 2012\Projects\Проект3\Проект3\Исходный код.cpp    7    1    Проект3

при создании файла я выбрал пустой проект. Может нужно было выбрать консольное приложение?

 

 

 

Игорь Матусевич
Игорь Матусевич
Россия
Александр Мельников
Александр Мельников
Россия