Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/9: Рейтинг темы: голосов - 9, средняя оценка - 4.67
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
1

Нюансы ввода/вывода в Си и C++ (функция printf() и объект std::cout)

06.01.2016, 15:07. Показов 1694. Ответов 6

Добрый день.

Интересует следующий вопрос: каким именно образом работает команда форматирование "%i" в printf. В манах написано что спецификатор %i указывает printf, что ожидается десятичное число целого типа со знаком. Как я понимаю при этом если на входе в printf не int, то произойдёт неявное преобразование типа.

И вопрос вот в чём - есть ли какой-то аналог такого форматированного вывода для cout? И если нет, то каким образом вывести, например, значение переменной типа char в формате десятичного числа?

[upd] И ещё какая именно разница между спецификаторами %d и %i? Вики говорит, что при выводе разницы нет, а разница есть только на входе. Но какая именно не сообщается.
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.01.2016, 15:07
Ответы с готовыми решениями:

Написать программу более простым языком (как заменить std::cout на printf? )
#include <iostream> #include <stdio.h> #include <iomanip> using namespace std; int main() {...

Функции ввода/вывода printf(), scanf().
Составить программу для форматированного ввода и вывода данных заданного типа: Тип1=unsigned int;...

Нюансы ввода/вывода: как правильно организовать ввод строки с пробелами?
Доброе время суток. Такой вопрос: у меня есть структура, содержащая ФИО, адрес, телефон, возраст....

Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream
Здравствуйте! Я хотел начать изучать язык C++. Набрал литературы. Установил Microsoft Visual C++...

6
Хитрая блондиночка $)
1464 / 979 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
06.01.2016, 15:24 2
Лучший ответ Сообщение было отмечено inviter42 как решение

Решение

Цитата Сообщение от inviter42 Посмотреть сообщение
вывести, например, значение переменной типа char в формате десятичного числа?
C++
1
std::cout<<(int)'1';
Т.е. приведением типа.
1
Эксперт CЭксперт С++
5064 / 2251 / 331
Регистрация: 20.02.2013
Сообщений: 5,602
Записей в блоге: 19
06.01.2016, 15:25 3
Лучший ответ Сообщение было отмечено inviter42 как решение

Решение

inviter42, возможно, вот это поможет.
1
83 / 2 / 2
Регистрация: 27.11.2015
Сообщений: 163
06.01.2016, 15:32  [ТС] 4
Hikari, а приведение типа не влият на объём области памяти, занимаемый переменной, да? Т.е. меняется только её числовое представление в стеке?

gru74ik, благодарю, хорошое чтение.
0
sourcerer
06.01.2016, 16:39
  #5

Не по теме:

inviter42, заяц (это же заяц?) совершенно восхитительный. Каждый раз, когда вижу Ваш аватар, прихожу в восторг. Откуда картинка?

0
Хитрая блондиночка $)
1464 / 979 / 399
Регистрация: 21.12.2015
Сообщений: 3,785
06.01.2016, 16:49 6
Цитата Сообщение от inviter42 Посмотреть сообщение
Т.е. меняется только её числовое представление в стеке?
Скорее правильнее будет сказать: Меняется интерпретация самим механизмом cout. В стеке хоть число, хоть символ - все равно лежит как число количеством разрядов в разрядность операционной системы.
1
inviter42
06.01.2016, 16:53  [ТС]     Нюансы ввода/вывода в Си и C++ (функция printf() и объект std::cout)
  #7

Не по теме:

gru74ik, рад что оценили :) Заяц - на самом деле кролик - произведение господина hontor'а. Профиль его, как и другие работы, можно найти на deviantart.

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.01.2016, 16:53

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Зачем в команды ввода/вывода добавляют std::
Я начал кодить совсем недавно. И я не могу понять, почему в команды ввода/вывода добавляют std::...

Расчитать значения переменных y и z по заданным формулам, используя для ввода/вывода cin и cout
Расчитать значения переменных y и z по заданным формулам (табл. 1). Для ввода/вывода использовать...

Расчитать значения переменных y и z по заданным формулам, используя для ввода/вывода cin и cout
Расчитать значения переменных y и z по заданным формулам . Для ввода/вывод использовать объекты ...

Расчитать значения переменных y и z по заданным формулам, используя для ввода/вывода scanf и printf
Расчитать значения переменных y и z по заданным формулам (табл. 1). Использовать для ввода функцию...


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

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

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