Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++

Войти
Регистрация
Восстановить пароль
 
 
nikita
1 / 1 / 0
Регистрация: 13.11.2007
Сообщений: 31
#1

Форматный вывод с помощью cout - C++

15.11.2007, 12:55. Просмотров 88238. Ответов 17
Метки нет (Все метки)

У меня простой вопрос. В си есть такая функция printf. Что-бы вывести дробное число k без всяких там E можно написать printf("%f",k). Вопрос такой: как это сделать при помощи функции С++ cout ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2007, 12:55
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Форматный вывод с помощью cout (C++):

Вывод текста не экран с помощью DrawText (DirectX) - C++
Здравствуйте, проблема такая: пытаюсь вывести текст на экран, если я пишу вот так pFont->DrawText(NULL, L"Все работает", -1, &rc,...

Зачем очищать поток cout? - C++
Всем привет! Не могу понять, зачем очищать поток cout после вывода? Все, что выудил из гугла, что вроде как поток сохраняет в себе...

Переопределить поток вывода cout - C++
Есть некоторый кусок кода выводящий на консоль информацию с помощью cout, все бы хорошо, но при некоторых условиях, бывает нужно выводить...

Класс log, выводящий в cout и в syslog - C++
Для логгирования в Linux-системе (для самого вопроса это не важно) хочу использовать свой класс с перегруженным operator<<(). Лог должен...

Вывод символа с помощью IntToStr - C++ Builder
использую эту вещь для вывода содержимого массива для проверки программы, но вот столкнулся с каким-то бредом - в массиве находится либо 0,...

Вывод картинок с помощью ImageList - C++ Builder
Как с помощью ImageList выводить картинки поочереди при нажатии кнопки? Заранее спасибо!!! Я просто никогда не работал с ImageList и...

17
Herbert
0 / 0 / 2
Регистрация: 27.08.2007
Сообщений: 26
15.11.2007, 21:22 #2
Если ошибаюсь пусть поправят, но мне кажется, что функция cout форматный вывод не поддерживает.
А...? народ?
0
Mecid
680 / 229 / 4
Регистрация: 15.10.2007
Сообщений: 1,247
15.11.2007, 21:30 #3
double k;
cout << k;
0
nikita
1 / 1 / 0
Регистрация: 13.11.2007
Сообщений: 31
17.11.2007, 16:10  [ТС] #4
Что неужели никак не вывести в удобном формате? Может есть функция округления до какой-нибудь десятичной части? В Pascal можно было вывести с помощью Write(x:0:6) .
0
Mecid
680 / 229 / 4
Регистрация: 15.10.2007
Сообщений: 1,247
17.11.2007, 18:54 #5
napisal da
double k;
cout << "k = "<<k;
1
fromrus
0 / 0 / 0
Регистрация: 13.07.2009
Сообщений: 4
20.11.2007, 14:54 #6
float/double "imya peremennoi";
cout <<"imya peremennoi"
0
LLIypynuk
0 / 0 / 0
Регистрация: 13.11.2007
Сообщений: 45
21.11.2007, 07:35 #7
гыгы))) Функция cout НЕподдерживает форматный вывод. Но конструкция типа:
double num;
cout << num;
имеет смысл и компилиться без притензий.
Но С- стандарт дефакто! Если надо консольное приложение, то я думаю лучшего выбора НЕТ, а не мучиться с ненужными надумками в С++. Но в нем есть все таки минус- нету классов с их объектами и методами
0
толстый василий
0 / 0 / 0
Регистрация: 21.02.2009
Сообщений: 1
24.02.2009, 14:43 #8
я извиняюсь, что поднимаю тему. Но что-то уже не первый раз на неё натыкаюсь в гугле.
например, по запросу "форматный вывод cout" эта тема первая!
И она явно дезинформирует людей.
А самое интересное заключается в том, что означенная в теме задача имеет решение -
речь идёт о флагах форматирования.
А вот и правильная ссылочка:
http://www.cplusplus.com/reference/iostream/ios_base/ втыкать "formatting"
0
romych2004
22 / 21 / 3
Регистрация: 29.03.2009
Сообщений: 69
07.09.2009, 01:25 #9
времени прошло много.. но вдруг кому пригодится

Если вы используете cout для вывода значения с плавающей точкой, то обычно не можете сделать каких-либо предположений о том, сколько цифр будет выводить cout no умолчанию. Однако, используя манипулятор setprecision, вы можете указать количество требуемых цифр- Следующая программа SETPREC.CPP использует манипулятор setprecision для управления количеством цифр, которые появятся справа от десятичной точки:
C++
1
2
3
4
5
6
7
8
9
10
11
    #include <iostream.h>
 
    #include <iomanip.h>
 
    void main(void)
 
    {
       float value = 1.23456;
       int i;
       for (i = 1; i < 6; i++) cout << setprecision(i) << value << endl;
    }
1
M128K145
Эксперт JavaЭксперт С++
8316 / 3536 / 143
Регистрация: 03.07.2009
Сообщений: 10,708
08.09.2009, 21:45 #10
Флаги форматирования и манипуляторы
0
AnonymC
1175 / 458 / 30
Регистрация: 23.06.2009
Сообщений: 6,355
Завершенные тесты: 1
08.09.2009, 22:44 #11
nikita,
C++
1
2
3
4
5
6
7
8
double k;
cout<<k;
/*********/
char a;
cout<<a;
/*********/
int b;
cout<<b;
и т.д.
0
sanekxx
0 / 0 / 0
Регистрация: 25.05.2010
Сообщений: 1
29.05.2010, 03:44 #12
Подскажите ну что у меня ругается на функцию Cout

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
//------------------------------------------------------------------------------------------------ 
#include <iostream>
#include <conio.h>
using namespace std;
//-------------------------------------------------------
enum status{laborant, decan, proffessor};
//-------------------------------------------------------
class date
{
private:
int day;
int month;
int year;
char m;
public:
date(): day(0), month(0), year(0), m('/')
{}
void getdate()
{
cout<<"Enter date in format [day/month/year]: ";
cin>>day>>m>>month>>m>>year;
}
void showdate()
{cout<<"Date poluchki: "<<day<<m<<month<<m<<year;}
};
//------------------------------------------------------
class employ
{
private:
int number;
float oclad;
date poluchka;
status doljnost;
char st;
public:
void setemploy()
{
cout<<"\nEnter the number of woker: "; cin>>number;
cout<<"Enter the oklad of woker: "; cin>>oclad;
poluchka.getdate();
cout<<"Enter the 1st letter in word status [laborant, decan, proffessor]: ";
st=getch();
switch(st)
{
case 'l':
doljnost=laborant;
break;
case 'd':
doljnost= decan;
break;
case 'p':
doljnost = proffessor;
}
}
void display()
{
cout<<"\n\nThe number of woker: "<<number<<endl;
cout<<"The oclad of woker: "<<oclad<<endl;
poluchka.showdate();
switch(doljnost)
{case 0:
cout<<"\nStatus - laborant";
break;
case 1:
cout<<"\nStatus - decan";
break;
case 2:
cout<<"\nStatus - proffessor";
break;
}
}
};
//----------------------------------------------
int main()
{
employ cool, mike;
cool.setemploy();
mike.setemploy();
cout<<"\n\n C O O L\n";
cool.display();
cout<<"\n\n M I K E\n";
mike.display();
getch();
return 0;
}
//------------------------------------------------------------------------------------------------
0
ISergey
Maniac
Эксперт С++
1407 / 918 / 57
Регистрация: 02.01.2009
Сообщений: 2,736
Записей в блоге: 1
29.05.2010, 03:59 #13
sanekxx,

Не по теме:

1, Создавайте тему отдельно ( это на будущее )...


2, Может скажете на какую строчку хоть "ругается". Так как почти все нормально.. http://codepad.org/0G4BuhFW
0
x-positive
1 / 1 / 0
Регистрация: 09.02.2011
Сообщений: 21
16.02.2011, 03:49 #14
Цитата Сообщение от nikita Посмотреть сообщение
У меня простой вопрос. В си есть такая функция printf. Что-бы вывести дробное число k без всяких там E можно написать printf("%f",k). Вопрос такой: как это сделать при помощи функции С++ cout ?
Возможно. И сделать это можно при помощи такого чудесного слова "setprecision":

C++
1
2
3
4
5
6
7
8
9
#include <iostream.h>
    #include <iomanip.h>
 
    void main(void)
    {
       float value = 1.23456;
       int i;
       for (i = 1; i < 6; i++) cout << setprecision(i) << value << endl;
    }
0
coloc
погромист
411 / 247 / 15
Регистрация: 27.08.2012
Сообщений: 550
Завершенные тесты: 1
19.02.2013, 12:05 #15
std::fixed - выводит дроби в стандартном виде 4.56
std::scientific - в научном, т.е. 4.5е+00
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.02.2013, 12:05
Привет! Вот еще темы с ответами:

Организовать форматный ввод исходных данных из текстового файла и форматный вывод результатов в текстовый файл - Fortran
использовать динамические массивы, разработать подпрограмму, решающую поставленную задачу для произвольных исходных данных. Организовать...

Вывод таблицы с помощью cout, форматирование, выравнивание - C++
Ребята, помогите пожалуйста с написанием таблицы, но так, чтобы элементы отображались ровно по столбцам а то кол-во букв разное и я не...

ФОРМАТНЫЙ ВЫВОД - C++
Здраствуйте.Объясните пожалуйста подробно,что такое и зачем нужен ''ФОРМАТНЫЙ ВЫВОД''???

форматный вывод - C++
Как осуществить форматный вывод числа в C++ в cout, не в printf... Например, число 1,23456789, надо вывести 5 знаков после запятой, т.е....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru