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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
dima55501
29 / 33 / 6
Регистрация: 14.07.2013
Сообщений: 146
#1

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

04.12.2013, 18:56. Просмотров 183. Ответов 0
Метки нет (Все метки)

Добрый день. Написал перегруженный оператор вывода в поток. Проблема в том, что если 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     Изменяется значение при использовании манипуляторов
Посмотрите здесь:

Вычислить значение для float при использовании pow - C++
Добрый день! При вычислении выражения двумя типами float и double столкнулся со следующей проблемой. При использовании pow для float...

Не правильное значение при использовании {setlocale (LC_ALL, "Russian"); - C++
Почему после подключения команды #include &lt;locale.h&gt; ... setlocale (LC_ALL, &quot;Russian&quot;); программа начинает выдавать не правильный результат...

Изменяется значение щетчика - C++
програма читает с файлов числа, и выводит на екран. Не могу понять, почему щетчики i,j после исполнения цыкла увеличиваются на 1? Пишу в VS...

Не изменяется значение переменной в объекте - C++
Переменная health меняет своё значение только внутри функции punch(), при этом её значение в объектах a и b остаётся неизменным. Как...

Не изменяется значение элемента класса - C++
Часть программы: class Saving { public: ... void set(double); double calculate(); double get() const;

Функция суммы, не изменяется значение - C++
#include &lt;iostream&gt; using namespace std; int sum(int); int main() { int value = 10; cout &lt;&lt; &quot;sum = &quot; &lt;&lt; sum(value) &lt;&lt;...

Почему значение tellg() не изменяется? - C++
Следующий код: #include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; void main() { ifstream file;

Значение аргумента х изменяется от а до b с шагом h - C++
Здравствуйте уважаемые любители и ценители языка С++! У меня к вам огромная просьба. На днях нужно сдать контрольную работу по предмету...

Создание манипуляторов - C++
Здравствуйте! Задание: создать манипулятор, который будет игнорировать при вводе некоторые символы (заданные ранее). Подскажите...

Почему изменяется значение переменной между функциями класса? - C++
Почему-то изменяется значение переменной m(кол-во специальностей) в output_spec. Пробовал в других средах покомпилить, но m все равно...


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

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

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