Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вывод char 
:(
    Опции темы
ConverterDU
Дата 29.4.2011, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 18.2.2011

Репутация: нет
Всего: нет



подскажите как вывести содержание массива в консоли и в QMessageBox? В массиве серийный номер, там буквы, цифры и знаки -.....по идее.
пишу так, он выводит всякие значки...
Код

         char SerNo[12]
    QMessageBox::information(this, "CamCap",SerNo);


Добавлено через 2 минуты и 21 секунду
и как unsigned char  вывести с помощью QMessageBox?
PM MAIL   Вверх
ecspertiza
Дата 29.4.2011, 13:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 763
Регистрация: 3.11.2008
Где: г.Смоленск

Репутация: нет
Всего: 5



Ну наверное как то так

Код

     QMessageBox::information(this, "CamCap",QString(SerNo));
     qDebug() << SerNo;
     std::cout << SerNo  << std::endl; 


не тестил правда



--------------------
С уважением,
мастер конфетного цеха!

онлайн компилер
залип
PM MAIL   Вверх
borisbn
Дата 29.4.2011, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



ConverterDU, правильно ли я понимаю, что у тебя в массиве лежат какие-то числа, а тебе их нужно вывести в качестве строки ?
Если да, то так
Код

char SerNo[12] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };
QString str;
for ( int i = 0; i < 12; i++) {
    str.append( QString::number( (int)SerNo[ i ] ) + " " );
}

Цитата(ConverterDU @  29.4.2011,  13:07 Найти цитируемый пост)
и как unsigned char  вывести с помощью QMessageBox?

Код

unsigned char x = 42;
QString str = QString::number( (int)x );




--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ConverterDU
Дата 29.4.2011, 14:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 18.2.2011

Репутация: нет
Всего: нет



если писать так

Код

QString str;
            for ( int i = 0; i < 12; i++) {
                str.append( QString::number( (int)SerNo[ i ] ) + " " );
            }
            QMessageBox::information(this, "CamCap",SerNo);



вот что выводит: "З©4ÿ"! Я не знаю что там, буквы и цифры по-ходу дела!
Может, я не правильно написал?


PM MAIL   Вверх
borisbn
Дата 29.4.2011, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



ConverterDU
Цитата

 QMessageBox::information(this, "CamCap", str);



--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ConverterDU
Дата 29.4.2011, 15:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 18.2.2011

Репутация: нет
Всего: нет



вывел "-80 -111 42 89 -1 127 0 0 21 9 -92 -68 ", почему так много чисел, если массив из 12 состоит?

Добавлено через 8 минут и 41 секунду
А, ну как раз 12 групп получается....эх...

Спасибо всем за помощь огромное!

Это сообщение отредактировал(а) ConverterDU - 29.4.2011, 15:02
PM MAIL   Вверх
ConverterDU
Дата 29.4.2011, 15:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 18.2.2011

Репутация: нет
Всего: нет



нет, это неверный номер.....должны быть цифры....10 цифр....он какую то комбинацию сам генерирует...

Добавлено @ 15:37
Цитата



    
unsigned char x = 42;
QString str = QString::number( (int)x );




borisbn,  в unsigned char должны быть слова у меня, а не цифры... smile 

Это сообщение отредактировал(а) ConverterDU - 29.4.2011, 15:38
PM MAIL   Вверх
borisbn
Дата 29.4.2011, 15:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



ConverterDU, ты совсем запутал smile
приведи пример того, что лежит в массиве из 12 char и того, как бы ты хотел, чтобы это выглядело в строке


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ConverterDU
Дата 29.4.2011, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 18.2.2011

Репутация: нет
Всего: нет



у камеры есть такая функция:  INT is_GetCameraInfo (HIDS hCam, CAMINFO* pInfo)

она мне дает структуру данных CAMINFO, которая содержит в себе помимо всего прочего:

char                     -   SerNo[12]   -      Seriennummer der Kamera
unsigned char   -    Type           -       Kameratyp:
                                                              IS_CAMERA_TYPE_UEYE_USB_SE
                                                              IS_CAMERA_TYPE_UEYE_USB_ME
                                                               и т.д...

Я написал:

Код

void CamCapMainWindow::CamInfo() {
char SerNo[12];
    if (is_GetCameraInfo (hCam, &pInfo)==IS_SUCCESS) {
        QString str;
            for ( int i = 0; i < 12; i++) {
                str.append( QString::number( (char)SerNo[ i ] ));
            }
                   QMessageBox::information(this, "CamCap",str);
        
                       } else {
                              QMessageBox::warning(this, "CamCap", "Error");
                      }                 
}
 smile

Добавлено @ 16:11
должно быть: 4002780010 smile 

Это сообщение отредактировал(а) ConverterDU - 29.4.2011, 16:13
PM MAIL   Вверх
borisbn
Дата 29.4.2011, 16:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135





ConverterDU, если ты имеешь в виду шестнадцатеричное представление этих 12-ти байт, то должно быть так
Код

QString str;
for ( int i = 0; i < 12; i++) {
    str.append( QString::number( (int)SerNo[ i ], 16 ) );
}

для твоего примера 
"-80 -111 42 89 -1 127 0 0 21 9 -92 -68 "
будет так
Цитата

b0912a59ff7f00001509a4bc




--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ConverterDU
Дата 29.4.2011, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 18.2.2011

Репутация: нет
Всего: нет



Цитата

ConverterDU, если ты имеешь в виду шестнадцатеричное представление


да нет, десятичное представление должно быть....должно получиться конкретное число - 4002780010...

Добавлено через 1 минуту и 52 секунды
странный он набор числел выдает....

Добавлено через 3 минуты и 48 секунд
причем каждый раз набор разный....
PM MAIL   Вверх
borisbn
Дата 29.4.2011, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



Цитата(ConverterDU @  29.4.2011,  16:28 Найти цитируемый пост)
десятичное представление должно быть

тогда так
Код

   unsigned long long * p = (unsigned long long *)SerNo;
   QString str = QString::number( *p );


смотри, в этом SerNo лежит 12 байт. Представь, что в первом байте лежит число 1, во втором 2 и т.д. Что ты хочешь увидеть в строке ? 


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
bsa
Дата 29.4.2011, 20:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Цитата(borisbn @  29.4.2011,  16:19 Найти цитируемый пост)
QString str;
for ( int i = 0; i < 12; i++) {
    str.append( QString::number( (int)SerNo[ i ], 16 ) );
}
Ну ты извращенец:
Код
QString serialStr = QByteArray(SerNo, 16).toHex();

PM   Вверх
borisbn
Дата 30.4.2011, 09:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 21
Всего: 135



bsa, уууупс, не знал. Ну, во-первых нужны не 16 байт, а 12, а во-вторых в моём варианте лёгким движением руки © можно в двадцатисемиричную систему перевести smile smile smile

Это сообщение отредактировал(а) borisbn - 30.4.2011, 09:16


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
ConverterDU
Дата 1.5.2011, 19:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 18.2.2011

Репутация: нет
Всего: нет



Цитата

смотри, в этом SerNo лежит 12 байт. Представь, что в первом байте лежит число 1, во втором 2 и т.д. Что ты хочешь увидеть в строке ?  

может, мы немного не поняли друг друга, но я же говорю, вот этот номер - 4002780010.

Я перепробовал все ваши варианты и они работают, если самому массив забить.....но с SerNo какая-то хрень, зла не хватает....функция то работает....выводит что угодно, но не серийник....видимо, сама функция глючит, все же....

Добавлено через 19 секунд
спасибо, за помощь..
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.1021 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.