подскажите Новичку
От: agil  
Дата: 16.12.01 01:06
Оценка:
Имеется код:
unsigned char *pBuffer;
char szLong[0x100];

case REG_BINARY:
{
cout.fill('0');
cout << hex << setw(2) << (unsigned int)(pBuffer[i])<< ' ';
}

Как этот код написать под VC++ 6, и вместо потока cout использовать szLong для хранения
данных.
Re: подскажите Новичку
От: VD Россия  
Дата: 16.12.01 11:55
Оценка:
Здравствуйте agil, Вы писали:

A>Имеется код:

A>unsigned char *pBuffer;
A>char szLong[0x100];

A>case REG_BINARY:

A>{
A> cout.fill('0');
A> cout << hex << setw(2) << (unsigned int)(pBuffer[i])<< ' ';
A>}

A>Как этот код написать под VC++ 6, и вместо потока cout использовать szLong для хранения

A>данных.

Для начала советую вам разобраться с типами оперируемых данных: szLong — массив char, в поток вы пишете (unsigned int), а исходные данные храняться как (unsigned char), поэтому возможна потеря данных. Так и должно быть?
Далее хотелось бы знать, для чего это все делается? Что должно получиться в итоге?
Если нужно просто писать символы, то делаем все ручками — берем символ; конвертим в нужный формат; записываем в массив по нужному индексу (при этом не забываем контролировать индексы и выход за границы массива).
Re: подскажите Новичку
От: Андрей Россия  
Дата: 17.12.01 04:16
Оценка:
Здравствуйте agil, Вы писали:

A>Имеется код:

A>unsigned char *pBuffer;
A>char szLong[0x100];

A>case REG_BINARY:

A>{
A> cout.fill('0');
A> cout << hex << setw(2) << (unsigned int)(pBuffer[i])<< ' ';
A>}

A>Как этот код написать под VC++ 6, и вместо потока cout использовать szLong для хранения

A>данных.

Используй вместо std::ostream cout -> std::ostrstream, но это не отменяет замечаний из предыдущего ответа.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.