Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.68/19: Рейтинг темы: голосов - 19, средняя оценка - 4.68
1 / 1 / 0
Регистрация: 15.02.2011
Сообщений: 43
1

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

25.02.2011, 01:19. Показов 3952. Ответов 1
Метки нет (Все метки)

Добрый день, собственно есть задача вывести строку в виде 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;
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2011, 01:19
Ответы с готовыми решениями:

Вывод строки в обратной последовательности
#include &lt;iostream&gt; using namespace std; #include &lt;Windows.h&gt; void Q(void) { char c;

Вывод строки на экран с использованием esp-последовательности
ДОБРЫЙ ДЕНЬ,в нашем ВУЗе ввели дисциплину по С++,я в ней-полный чайник(((((помогите,пожалуйста,с...

Записать в файл все числа от нуля до 2^16 в hex-виде
Здравствуйте, как записать все комбинации 2^16 (в hex-виде) в блокнот ?

Вывод данных в HEX по указателю
Скрывать не буду, совсем не силен в указателях в c++. Путаюсь сильно со звездочками. Исходные...

1
В астрале
Эксперт С++
8035 / 4792 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
25.02.2011, 01:34 2
Selendis, Проверяется число-ли это. Не было ли ошибки считывания если точнее.
Если не было - число.
Если было - не число.

Добавлено через 2 минуты
А ткнул бы так например...
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <sstream>
#include <string>
 
int main()
{
    std::string str;
    int some=0;
    std::cin>>str;
    std::istringstream ist(str);
    ist >> some;
    std::cout<<std::hex<<some<'\n';
    return 0;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
25.02.2011, 01:34

Вывод решения в виде последовательности или дерева
Собственно, задание тривиальное. % Фред, Барни и Ральф состоят в клубе. Члены клуба или...

Вывод любого файла в виде последовательности нулей и единиц в memo
Задача поставлена следующим образом: открыть файл любого расширения и вывести его представление в...

Вывод строки чисел без пробелов, а затем вывод значения в виде списка чисел
Определить функцию (Z1 k n), где k&lt;n, которая сначала выводит строку чисел без пробелов k k+1 k+2...

Вывод строки в обратном виде
Есть код .model tiny .data m db &quot;abcde&quot;,'$' .code org 100h start:


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

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