Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 05.04.2012, 11:34   #1
monro86
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 31
Восклицание Выравнивание текста

Здрасте!
Есть кусок кода:
Код:
{
	header();
	if (first == NULL)
		cout << "Пусто!" << endl;
	else
	{
		temp = first;
		cout << " Дисциплина" << setw(30) << "К-тво практ. занятий" << setw(25) 
		<<"К-тво лаб. занятий" << endl;
		do
		{
			cout << " " << (*temp).subject
				<< (*temp).amountWorkShop
				<< (*temp).amountLabWork 
				<< endl;
			temp = (*temp).next;
		}
		while
			(temp != NULL);
	}
	getchar();
}
Снова же не пойму, почему у меня не получается вывести в столбец данные,
Код:
setw()
не помогает. Каждый раз при разхных введенных данных, столбец уходит в сторону. Можно какнибудь зафиксировать? Или кактойто другой путь решения существует?
Спасибо!:confus ed:
monro86 вне форума Ответить с цитированием
Старый 05.04.2012, 12:38   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Можно и зафиксировать.
Перегрузите оператор << для вашей структуры.
Что-то типа:
Код:
struct info
{
	char subject[50];
	int amountWorkShop;
	int amountLabWork;
};

std::ostream& operator << (std::ostream& s, info& m)
{
	return s << m.subject << std::setw(30) << m.amountWorkShop << std::setw(25) << m.amountLabWork << std::endl;
}

//......
while(temp)
{
   cout << *temp;

}
EUGY вне форума Ответить с цитированием
Старый 05.04.2012, 12:44   #3
monro86
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 31
По умолчанию

не совсем понятно. Можно поподробней?
monro86 вне форума Ответить с цитированием
Старый 05.04.2012, 12:55   #4
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Куда ж подробнее? Статью писать?
У Вас есть структура, Вы хотите выводить ее по особым правилам.
Для этого перегружаете оператор <<
Код:
ostream& operator<< ( ostream& os, mystruct& dt )
{
   os << dt.mo << '/' << dt.da << '/' << dt.yr;
   return os;
}
И выводите.
EUGY вне форума Ответить с цитированием
Старый 05.04.2012, 13:14   #5
monro86
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 31
По умолчанию

я так понимаю будет такая таблица:

Код:
Значение1 / Значение 2 / Значение 3
Значение345 / Значение 4322/ Значение 10500
а хотелось :

Код:
Значение1    / Значение 2      / Значение 3
Значение345  / Значение 4322   / Значение 10500
или я ошибаюсь?
monro86 вне форума Ответить с цитированием
Старый 05.04.2012, 13:25   #6
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Сорри, сам ошибся не потестил.

Но сути не меняет.
Код:
std::ostream& operator << (std::ostream& s, info& m)
{
	char buf[10];
	itoa(m.amountWorkShop,buf, 10);
	s << m.subject << std::setw(50 - strlen(m.subject)) << m.amountWorkShop << std::setw(25 -  strlen(buf)) << m.amountLabWork << std::endl;
	return s;
}

Последний раз редактировалось EUGY; 05.04.2012 в 13:49.
EUGY вне форума Ответить с цитированием
Старый 05.04.2012, 14:25   #7
monro86
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 31
По умолчанию

спасибо большое
monro86 вне форума Ответить с цитированием
Старый 05.04.2012, 23:35   #8
monro86
Пользователь
 
Регистрация: 15.12.2011
Сообщений: 31
По умолчанию

возникла проблема:
Код:
Аргумент типа int не совместим с параметром типа const char
это при использовании strlen

пардон, уже исправил, спасибо

Последний раз редактировалось monro86; 05.04.2012 в 23:39. Причина: слепой
monro86 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выравнивание текста gamaiunov_alex Microsoft Office Excel 11 19.04.2011 10:04
выравнивание текста Olya1985 Microsoft Office Excel 3 20.02.2011 10:13
выравнивание текста Olya1985 HTML и CSS 2 19.02.2011 21:28
Выравнивание текста Pandora13 Microsoft Office Word 2 27.02.2010 01:33
Выравнивание текста SeregaIRK Общие вопросы Delphi 4 21.07.2008 15:17