Форум программистов, компьютерный форум, киберфорум
C++
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.85/530: Рейтинг темы: голосов - 530, средняя оценка - 4.85
1 / 1 / 0
Регистрация: 13.11.2007
Сообщений: 31
1

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

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

У меня простой вопрос. В си есть такая функция printf. Что-бы вывести дробное число k без всяких там E можно написать printf("%f",k). Вопрос такой: как это сделать при помощи функции С++ cout ?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.11.2007, 12:55
Ответы с готовыми решениями:

Форматный вывод
У меня есть функция: sprintf(log+pos,"%8i:%-8i", (record->duration)/60, (record->duration)%60);...

Форматный вывод через cout
Как можно написать данную программу с помощью потока cout? #include <conio.h> #include...

Форматный вывод cout /printf
Вот код, как сделать вывод через cout , а не через printf? Помогите пожалуйста, заранее спасибо :)...

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

17
0 / 0 / 3
Регистрация: 27.08.2007
Сообщений: 26
15.11.2007, 21:22 2
Если ошибаюсь пусть поправят, но мне кажется, что функция cout форматный вывод не поддерживает.
А...? народ?
0
682 / 231 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
15.11.2007, 21:30 3
double k;
cout << k;
0
1 / 1 / 0
Регистрация: 13.11.2007
Сообщений: 31
17.11.2007, 16:10  [ТС] 4
Что неужели никак не вывести в удобном формате? Может есть функция округления до какой-нибудь десятичной части? В Pascal можно было вывести с помощью Write(x:0:6) .
0
682 / 231 / 16
Регистрация: 15.10.2007
Сообщений: 1,247
17.11.2007, 18:54 5
napisal da
double k;
cout << "k = "<<k;
1
0 / 0 / 0
Регистрация: 13.07.2009
Сообщений: 4
20.11.2007, 14:54 6
float/double "imya peremennoi";
cout <<"imya peremennoi"
0
0 / 0 / 0
Регистрация: 13.11.2007
Сообщений: 45
21.11.2007, 07:35 7
гыгы))) Функция cout НЕподдерживает форматный вывод. Но конструкция типа:
double num;
cout << num;
имеет смысл и компилиться без притензий.
Но С- стандарт дефакто! Если надо консольное приложение, то я думаю лучшего выбора НЕТ, а не мучиться с ненужными надумками в С++. Но в нем есть все таки минус- нету классов с их объектами и методами
0
толстый василий
24.02.2009, 14:43 8
я извиняюсь, что поднимаю тему. Но что-то уже не первый раз на неё натыкаюсь в гугле.
например, по запросу "форматный вывод cout" эта тема первая!
И она явно дезинформирует людей.
А самое интересное заключается в том, что означенная в теме задача имеет решение -
речь идёт о флагах форматирования.
А вот и правильная ссылочка:
http://www.cplusplus.com/refer... /ios_base/ втыкать "formatting"
22 / 21 / 0
Регистрация: 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
Эксперт JavaЭксперт С++
8360 / 3581 / 419
Регистрация: 03.07.2009
Сообщений: 10,708
08.09.2009, 21:45 10
Флаги форматирования и манипуляторы
0
1182 / 467 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
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
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;
}
//------------------------------------------------------------------------------------------------
Maniac
Эксперт С++
1446 / 948 / 158
Регистрация: 02.01.2009
Сообщений: 2,813
Записей в блоге: 1
29.05.2010, 03:59 13
sanekxx,

Не по теме:

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


2, Может скажете на какую строчку хоть "ругается". Так как почти все нормально.. http://codepad.org/0G4BuhFW
0
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
погромист
413 / 249 / 30
Регистрация: 27.08.2012
Сообщений: 550
19.02.2013, 12:05 15
std::fixed - выводит дроби в стандартном виде 4.56
std::scientific - в научном, т.е. 4.5е+00
0
0 / 0 / 0
Регистрация: 08.07.2017
Сообщений: 1
08.07.2017, 00:21 16
sanekxx

Вы пропустили <<endl; после каждой функции cout.
0
647 / 269 / 92
Регистрация: 04.07.2014
Сообщений: 758
11.07.2017, 13:06 17
Стандартная библиотека С++ для вывода ущербна. А для интернационализации приложений она ещё хуже, чем printf.
Как следствие появление своих способов форматированного вывода во многих библиотеках (см. тот же Qt).
При этом основной жбан начинается, когда тебе нужна форматированная строка (например, std::string).
А у нас не учат использовать сторонние библиотеки.
Так что просто оставлю пример с {fmt}.

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <vector>
#include <fmt/format.h>
 
int main() {
  std::vector<double> xs = {{ 100.01, 99.99, 0.0000001, 1e-10 }};
 
  for(const auto &x: xs) {
    fmt::print("{0} = {0:.1f} = {0:_^10.2f}\n", x); // uses Python-like format string syntax
  }
 
  return 0;
}
Результат:

Код
100.01 = 100.0 = __100.01__
99.99 = 100.0 = __99.99___
1e-07 = 0.0 = ___0.00___
1e-10 = 0.0 = ___0.00___
0
Любитель чаепитий
3470 / 1589 / 495
Регистрация: 24.08.2014
Сообщений: 5,492
Записей в блоге: 1
11.07.2017, 13:13 18
Цитата Сообщение от AlexVRud Посмотреть сообщение
При этом основной жбан начинается, когда тебе нужна форматированная строка (например, std::string).
и в чем проблема? )
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.07.2017, 13:13

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

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

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

Форматный вывод матрицы
Добрый день. Неполучается сделать такой вывод матриц при СЛОЖЕНИИ(case 2)...

Форматный ввод / вывод в языке С ++ (Console Application)
Помогите пожалуйста, только начинаю учить C++ 1. Напишите инструкцию ввода и вывода значений чисел...


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

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

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