Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Массив int в char*, преобразование массива 
:(
    Опции темы
evgovs1991
Дата 16.10.2014, 17:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Написал функцию перевода десятичного числа в двоичного...особенность в том что возвращать ответ надо в строку типа char*...когда вызываю функцию то Range Check Error...как исправить ошибку?
Код

char* Bin(char* s)
{
String k,h;
k=(const char*) s;
int x;
x=StrToInt(k);
 for (int i = 1;; i++)
 {
    if(x%2==0){    h[i]='0';x=x/2;}
    else{h[i]='1';x=x/2;}
    }
return AnsiString(h).c_str();

}


Это сообщение отредактировал(а) evgovs1991 - 16.10.2014, 17:35
PM MAIL   Вверх
Vasya
Дата 16.10.2014, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Код

for (int i = 1;; i++)

Где условие выхода из цикла ?
PM MAIL   Вверх
evgovs1991
Дата 16.10.2014, 22:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(evgovs1991 @ 16.10.2014,  17:34)
Написал функцию перевода десятичного числа в двоичного...особенность в том что возвращать ответ надо в строку типа char*...когда вызываю функцию то Range Check Error...как исправить ошибку?
Код

char* Bin(char* s)
{
String k,h;
k=(const char*) s;
int x;
x=StrToInt(k);
 for (int i = 1;i<5; i++)
 {
    if(x%2==0){    h[i]='0';x=x/2;}
    else{h[i]='1';x=x/2;}
    }
return AnsiString(h).c_str();

}

не помогло условие выхода из цикла

Это сообщение отредактировал(а) evgovs1991 - 16.10.2014, 22:03
PM MAIL   Вверх
Dem_max
Дата 17.10.2014, 06:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Код

#include <string>
#include <bitset>
#include <type_traits>

#define IS_INTEGRAL(T) typename std::enable_if< std::is_integral<T>::value >::type* = 0

template<class T>
std::string integral_to_binary_string(T data, IS_INTEGRAL(T))
{
    std::bitset<sizeof(T) * CHAR_BIT> bs(data);
    return bs.to_string();
}



__fastcall TForm1::TForm1(TComponent* Owner)
    : TForm(Owner)
{
    long int data;
    unsigned char byte = 0x33;
    std::string str;
    str = integral_to_binary_string(data);
    OutputDebugString(str.c_str());

    str = integral_to_binary_string(byte);
    OutputDebugString(str.c_str());

}



--------------------
Американские программисты долго не могли понять, почему русские при зависании Windоws всё время повторяют "Твой зайка написал" ("Yоur bunnу wrоte")
PM MAIL   Вверх
borisbn
Дата 17.10.2014, 06:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата
return AnsiString(h).c_str();

Стандартная ошибка. Ты возвращаешь указатель на данные временного объекта AnsiString, который после этой строки уничтожается


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


Новичок



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

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



спасибо за помощь буду разбиратся
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

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

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

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

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


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

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


 




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


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

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