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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Написать программу, которая проверяет, является ли год високосным http://www.cyberforum.ru/cpp-beginners/thread1028610.html
Написать программу, которая проверяет, является ли год високосным. Помогите пожалуйста
C++ Создать 2 класса в 1-м классе массив из 10 чисел, а во 2-м классе массив из порядковых номеров максимального числа из 1-го массива(Если их несколько) Создать 2 класса в 1-м классе массив из 10 чисел, а во 2-м классе массив из порядковых номеров максимального числа из 1-го массива(Если их несколько) Добавлено через 2 часа 15 минут Помогите сделать задачу! Срочно))Пожалуйста. http://www.cyberforum.ru/cpp-beginners/thread1028605.html
C++ Передача части двумерного массива в функцию, как одномерного
Приветствую. Возможно, я не ясно выразился в заголовке темы, поэтому поясняю: есть у меня двумерный массив , его нужно отправить в функцию. Функция на входе ждет одномерный массив. Можно ли как-то сделать, чтоб в функцию передалась конкретная строка двумерного массива? или проще под нужную строку завести одномерный массив и его уже передавать?
Как найти первое простое число, превосходящее 10^100? C++
Как найти первое простое число, превосходящее 10^100?я уже бессилен.
C++ Найти максимум и минимум массива и поменять их местами и записать его содержимое в файл http://www.cyberforum.ru/cpp-beginners/thread1028574.html
7. Дан массив a, состоящий из целых чисел. Найти максимум и минимум и поменять их местами и записать его содержимое в файл g. Добавлено через 4 минуты - Первый и последний элементы поменять местами. -. Все отрицательные элементы заменить нулями и записать в новый файл g, а остальные в новый файл а.
C++ Дан целочисленный файл f 6. Дан целочисленный файл f. Записать в файл g все четные числа файла f, а в файл h - все нечетные. подробнее

Показать сообщение отдельно
dima55501
29 / 33 / 6
Регистрация: 14.07.2013
Сообщений: 146

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

04.12.2013, 18:56. Просмотров 188. Ответов 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;
}
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru