Форум программистов, компьютерный форум CyberForum.ru

Изменяется значение при использовании манипуляторов - C++

Восстановить пароль Регистрация
 
dima55501
 Аватар для dima55501
29 / 33 / 6
Регистрация: 14.07.2013
Сообщений: 146
04.12.2013, 18:56     Изменяется значение при использовании манипуляторов #1
Добрый день. Написал перегруженный оператор вывода в поток. Проблема в том, что если num будет начинаться с нулей, то они просто не появятся на экране. Для решения этой проблемы изменил ширину поля и использовал 0 как заполнитель. Проблема в том, что на выходе получаю не 0013, а 0011. Причем если первые нули заменить например на единицы, то на выходе получаю правильное число. В чем может быть проблема?

Код
#pragma warning(disable:4996)
#include <iostream>
#include <iomanip>

using namespace std;

class Phonebook
{
private:
	char name[64];
	int areacode;
	int prefix;
	int num;
public:
	Phonebook(char *n, int a, int p, int nm) { 
		strcpy(name, n); 
		areacode = a; 
		prefix = p; 
		num = nm; 
	}
	friend ostream &operator<<(ostream &, Phonebook &); 
};

ostream &operator<<(ostream &stream, Phonebook &obj)
{
	stream << obj.name << " ";
	stream << "(" << obj.areacode << ") ";
	stream << obj.prefix << "-";
	stream.width(4); //ширина поля = 4
	stream.fill('0'); // для вывода незначащих нулей
	stream << obj.num;
	return stream;
}

int main()
{
	Phonebook a("Taddy", 111, 555, 1113);
	cout << a << endl;
	system("pause");
	return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2013, 18:56     Изменяется значение при использовании манипуляторов
Посмотрите здесь:

Почему значение tellg() не изменяется? C++
C++ Изменяется значение щетчика
Значение аргумента х изменяется от а до b с шагом h C++
Вычислить значение для float при использовании pow C++
Вычислить значение функции a = b ^2 sin (b), причем b изменяется от 0,9 до 1,7 с шагом 0,2. Найти среднее значение разности между элементами C++
C++ Не изменяется значение элемента класса
Почему изменяется значение переменной между функциями класса? C++
C++ Не правильное значение при использовании {setlocale (LC_ALL, "Russian");

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 22:30. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru