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

Вывод строки в виде hex-последовательности - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Как вытянуть RGB из COLORREF? http://www.cyberforum.ru/cpp-beginners/thread248142.html
например я вот так делаю COLORREF color; color = ::GetPixel(hdc, x, y); cout << color; и как из этого получить цвет в RGB? а то например белый цвет выходит вот такой - 16777215, а как сделать 255 255 255, знает кто?
C++ Сортировка структуры В программе изначально задаются а также вводятся с клавиатуры данные структуры и записываются в файл, их нужно отсортировать по полю cena и вывести на экран. Добавлено через 15 часов 48 минут Вот если кому понадобится прога, писал в Visual Studio #include "stdafx.h" #include <conio.h> #include <string.h> #include <iostream> http://www.cyberforum.ru/cpp-beginners/thread248138.html
bin_dec_hex C++
Доброго всем времени суток! Написал прогу по переводу чисел из двоичной системы в десятеричную и наоборот,но нужно "допилить ее напильником" и отобразить перевод из десятеричной в шестнадцатиричную через меню.Благодарен всем,кто подскажет. #include<iostream> #include<conio.h> using namespace std; void bin(); void dec(); void main() { setlocale(0,"rus");
Копирвование текста C++
Есть такое задание: Написать программу копирования файла. В выходном файле сначала должны быть предложения, начинающиеся с гласной буквы, а потом все остальные. Чтение происходит блоками. Обработать ошибки. Кто чем может помогите....спс за ранее. Жду вашей помощи Добавлено через 22 часа 47 минут у кого-нить есть какие-нибудь соображения. Открытие файла я сделал. А как сделать все отсальное....
C++ Вектор! http://www.cyberforum.ru/cpp-beginners/thread248122.html
1. Найти максимальный элемент массива. 2. Найти сумму элементов массива, расположенных до последнего положительного элемента. 3. Сжать массив, удалив из него все элементы, модуль которых находится в интервале . Освободившиеся в конце массива элементы заполнить нулями. НО ЭТО НАДО СДЕЛАТЬ ЧЕРЕЗ ВЕКТОРЫ!
C++ Массивы - обьявление типов данных Запутался в типах.. подскажите кому лучше что присвоить. кусок проги, в ней ввод массива ну и попытка вычислить среднее арифметическое.. некомпилит с ошибкой о несовместимости типов данных, перепробовал все что знал :D, все комбинации типов. #include <cstdlib> #include <iostream> #include <cmath> #include <clocale> using namespace std; int main(int argc, char *argv) подробнее

Показать сообщение отдельно
Selendis
1 / 1 / 0
Регистрация: 15.02.2011
Сообщений: 43
25.02.2011, 01:19     Вывод строки в виде hex-последовательности
Добрый день, собственно есть задача вывести строку в виде hex последовательности.
Насколько я понимаю, обычно смотрится - записано ли число в строке и если да, то оно выводится, на простом С это было бы какой-нибудь функций atoi.

Я вот нарыл такой код и никак не могу его понять.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
#include <string>
#include <sstream>
#include <iostream>
 
template <class T>
bool from_string(T& t, 
                 const std::string& s, 
                 std::ios_base& (*f)(std::ios_base&))
{
  std::istringstream iss(s);
  return !(iss >> f >> t).fail();
}
 
int main()
{
  int i;
  float f;
  
  // the third parameter of from_string() should be 
  // one of std::hex, std::dec or std::oct
  if(from_string<int>(i, std::string("ff"), std::hex))
  {
    std::cout << i << std::endl;
  }
  else
  {
    std::cout << "from_string failed" << std::endl;
  }
  
  if(from_string<float>(f, std::string("123.456"), std::dec))
  {
    std::cout << f << std::endl;
  }
  else
  {
    std::cout << "from_string failed" << std::endl;
  }
  return 0;
}
В частности, что вот здесь происходит - return !(iss >> f >> t).fail(); ? Просто проверяется, число ли это? Можно поподробнее рассказать...

И подскажите, а то я что-то не пойму - здесь во время вызова функции поток переводится в hex вид std::hex() ?

И как бы вы мне наиболее топорно ткнули код - в стиле
C++
1
   std::cout << std::hex << f << std::endl;
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru