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

Забиваем строку 16-ричными числами и выводим на экран (генерируем МАС) - C++

Восстановить пароль Регистрация
 
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
19.06.2012, 23:53     Забиваем строку 16-ричными числами и выводим на экран (генерируем МАС) #1
генерируется мак адрес и выводится на экран.
но вот только как то не корректно он выводится

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <time.h>
#include <stdio.h>
 
int main() {
       char         *packetbuff = new char[60];
       for(i=6;i<12;i++) {                          // этот цикл забивает 6 байт. это MAC Source
        a=rand()%(2*m+1)/2;                     // рандом чисео в интервале [0;m]
        packetbuff[i]=(char)a;
    }
 
       printf("\n%x",packetbuff[6]);
       for(i=7;i<12;i++) {
        printf(":%x",packetbuff[i]);
        }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.06.2012, 23:53     Забиваем строку 16-ричными числами и выводим на экран (генерируем МАС)
Посмотрите здесь:

Работа с 16-ричными числами C++
Ошибка в двумерном массиве, программа проста: обьявляем и инициализируем двумерный массив и выводим на экран, на экране одни каракули!!! C++
Забить char-строку 16-ричными числами из генератора случайных чисел C++
C++ Разбить строку(с числами) и записать в массив
Перегрузка операций над 16-ричными числами C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
novi4ok
549 / 502 / 8
Регистрация: 23.07.2009
Сообщений: 2,359
Записей в блоге: 1
20.06.2012, 00:04     Забиваем строку 16-ричными числами и выводим на экран (генерируем МАС) #2
а ч тто такое "а"? кто его определил?
GBIT
 Аватар для GBIT
11 / 11 / 1
Регистрация: 05.10.2011
Сообщений: 219
20.06.2012, 00:19  [ТС]     Забиваем строку 16-ричными числами и выводим на экран (генерируем МАС) #3
забыл написать

C++
1
int a;
ValeryS
Модератор
6377 / 4843 / 442
Регистрация: 14.02.2011
Сообщений: 16,051
20.06.2012, 00:27     Забиваем строку 16-ричными числами и выводим на экран (генерируем МАС) #4
Цитата Сообщение от novi4ok Посмотреть сообщение
а ч тто такое "а"? кто его определил?
опередил
по теме если а равно инт? то при
Цитата Сообщение от GBIT Посмотреть сообщение
packetbuff[i]=(char)a;
теряются значения(компилятор должен кинуть варнинг) числа 0х101 и 0х001 будет одно и тоже(деление по модулю 256)
далее
а нахрена забивать 60! байт и считывать с 6 по 12???
в остальных местах мусор! может хотябы обнулить??
и где структура мак адреса??
просто байтовая последовательность
и по правильному не
Цитата Сообщение от GBIT Посмотреть сообщение
packetbuff[i]=(char)a;
а unsigned char
как то хреново знаковые переменные себя будут чувствовать в беззнаковой структуре

Добавлено через 3 минуты
соответственно
Цитата Сообщение от GBIT Посмотреть сообщение
char *packetbuff = new char[60];
C++
1
unsigned char *packetbuff = new unsigned char[60];
Добавлено через 2 минуты
Цитата Сообщение от GBIT Посмотреть сообщение
забыл написать
Код C++
1 int a;
а так же m
Yandex
Объявления
20.06.2012, 00:27     Забиваем строку 16-ричными числами и выводим на экран (генерируем МАС)
Ответ Создать тему
Опции темы

Текущее время: 02:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru