Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
2 / 2 / 0
Регистрация: 24.10.2013
Сообщений: 129

String IntToHex и синтаксис под Линукс

02.03.2015, 13:14. Показов 1507. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый.
Мне приходят данные о текущем времени в НЕХ формате, мне надо скорректировать моё текущее время на машине.
Вся беда заключается в том, что ранее я писал на С++ под винду. А сейчас пишу свой первый проект под Linux и не могу разобраться с синтаксисом. Под винду я бы написал так:
C++
1
2
3
4
5
6
char resData[3] = {0x35;0x22;0x12}//Принятые данные 12 часов, 22 минуты 35 секунд
string curr_val;
curr_val = IntToHex(resData[0];2) + IntToHex(resData[1];2) +IntToHex(resData[2];2);//Формируем строку в формате  ССММЧЧ для команды "data"
char command[256];
snprintf(command, 256, "data %d", curr_val);
system(command);
Подскажите пожалуйста как правильно это записать под Linux.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2015, 13:14
Ответы с готовыми решениями:

Игра под Линукс
Привет всем. Нужна помощь: необходимо импортировать некий *.blend файл (со всеми моделями, текстурами и освещением) в код на С++. Алгоритм...

Библиотека под линукс
Здравствуйте. Скажите,пожалуйста, как обычную программу на с++ в qt под linux превратить в библиотеку под linux, разработав к функциям...

Компиляция С++ под линукс в Eclipse
Добрый день. Написал программу на С++ в Eclipse. Библиотеки OpenCV установлены и как статичные, и как динамические (см скриншот)....

4
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
02.03.2015, 13:28
Можно так:
C++
1
2
3
4
char resData[3] = {0x35,0x22,0x12};//Принятые данные 12 часов, 22 минуты 35 секунд
  char temp[7];
  sprintf(temp, "%hhX%hhX%hhX", resData[0], resData[1], resData[2]);
  std::string cur_val(temp);
1
2 / 2 / 0
Регистрация: 24.10.2013
Сообщений: 129
02.03.2015, 13:42  [ТС]
Цитата Сообщение от HighPredator Посмотреть сообщение
Можно так:
C++
1
2
3
4
char resData[3] = {0x35,0x22,0x12};//Принятые данные 12 часов, 22 минуты 35 секунд
  char temp[7];
  sprintf(temp, "%hhX%hhX%hhX", resData[0], resData[1], resData[2]);
  std::string cur_val(temp);
В итоге у меня строка "command" выглядит так "data -1090520296" в место ожидаемого "data 352212".
0
 Аватар для HighPredator
6045 / 2160 / 753
Регистрация: 10.12.2010
Сообщений: 6,005
Записей в блоге: 3
02.03.2015, 13:54
Лучший ответ Сообщение было отмечено Maguark как решение

Решение

Maguark, у меня все пучком.

Добавлено через 4 минуты
А, стоп, а кто править код на формирование command будет?

Добавлено через 38 секунд
Можно и вообще без него обойтись

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
 
int main()
{
  char resData[3] = {0x35,0x22,0x12};//Принятые данные 12 часов, 22 минуты 35 секунд
  char temp[7];
  sprintf(temp, "%hhX%hhX%hhX", resData[0], resData[1], resData[2]);
  std::string cur_val("date ");
  cur_val.append(temp);
 
  std::cout<<cur_val<<std::endl;
  system(cur_val.c_str());
  return 0;
}
1
2 / 2 / 0
Регистрация: 24.10.2013
Сообщений: 129
02.03.2015, 15:42  [ТС]
Цитата Сообщение от HighPredator Посмотреть сообщение
Maguark, у меня все пучком.

Добавлено через 4 минуты
А, стоп, а кто править код на формирование command будет?

Добавлено через 38 секунд
Можно и вообще без него обойтись

Добавлено через 3 минуты
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
#include <string>
 
int main()
{
  char resData[3] = {0x35,0x22,0x12};//Принятые данные 12 часов, 22 минуты 35 секунд
  char temp[7];
  sprintf(temp, "%hhX%hhX%hhX", resData[0], resData[1], resData[2]);
  std::string cur_val("date ");
  cur_val.append(temp);
 
  std::cout<<cur_val<<std::endl;
  system(cur_val.c_str());
  return 0;
}
По невнимательности не заметил, что вы curr_val заменили как cur_val и подставлял свой старый массив в command=)
поправив cоmmand на
C++
1
snprintf(command, 256, "data %s", cur_val);
компилятор выдает ошибку:
error : cannot pass objects of non-trivially-copyable type 'std::string {aka class std::basic_string<char>}' through '...'
1> snprintf(command, 256, "data %s", cur_val);
Написал ответ, до того как увидел ваше добавление=)
Сейчас попробую. Большое спасибо за помощь.

Добавлено через 27 минут
Последний ваш вариант работает. Большое спасибо.
Единственное что для команды "data" важен формат. А у меня сейчас если одно из значений resData установлено как 0x03 к примеру, то в "temp" оно записывается как просто "3" а нужно 03. Но думаю, я смогу найти как это исправить=)
Еще раз спасибо вам за помощь.
Нашел, пишем вот так и все работает:
C++
1
sprintf(temp, "%02X%02X%02X", resData[0], resData[1], resData[2]);
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2015, 15:42
Помогаю со студенческими работами здесь

Работа программы под линукс
Сам пока все ещё докуриваю что и как на линуксе и тут встал вопрос , если программа написаная на С++ под винду то там запуском EXE , а у...

Актуальность программирования под линукс
Добрый день, какие темы на сегодняшний день наиболее востребованы для ОС линукс в рамках &quot;development&quot;? Рассматривается как...

Альтернатива getch() под линукс.
Есть альтернатива getch() под линукс? В виндовс я делал так; int namber = getch(); Это очень удобна, потому что в отличии от cin не...

Системное программирование под Линукс(КДЕ)
1.) Получить следующую системную информацию: • Время в секундах, прошедшее с момента загрузки системы; • Число процессов,...

Графика под линукс, приложение не компилируется
#include &lt;winbgim.h&gt; void func(int *q,int n) { int i; for (i=0;i&lt;n;i++) { moveto(100+10*i,200);


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru