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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> int->*char??? 
:(
    Опции темы
WaReZMEN
Дата 21.12.2007, 08:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

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



У меня есть 
int k=10;
char *a;

хочу чтоб *a стало равное "10"

делал так

Код

int k=1;
char *a;
*a=(char) k;

Пролучается *a="^A"... В чем проблема?
PM MAIL ICQ   Вверх
ksili
Дата 21.12.2007, 08:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



10 - это код служебного символа ^A.
Тебе надо просто преобразовать число в строку? Я уж не помню как это делается на чистом С/С++. Но прежде чем преобразовывать, не забудь выделить под строку память, т.к. char *a; это всего лишь пока неинициализированный указатель, а у тебя получается под строку надо два символа

Это сообщение отредактировал(а) ksili - 21.12.2007, 08:22


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
mrbrooks
Дата 21.12.2007, 08:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


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

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



Функция itoa(k,a,10) спасет вас комрады! 

PM MAIL   Вверх
Lazin
Дата 21.12.2007, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



snprintf
Код

char* buf = 0;
buf = new char[size];
snprintf(buf, size, "%d", k);
...
delete[] buf;

PM MAIL Skype GTalk   Вверх
mrbrooks
Дата 21.12.2007, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


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

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



to Lazin   а itoa - хуже или лучше твоего способа? Интересно узнать мнение грамотного специалиста.
PM MAIL   Вверх
Lazin
Дата 21.12.2007, 09:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



у itoa меньше возможностей.
PM MAIL Skype GTalk   Вверх
Mayk
Дата 21.12.2007, 09:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



itoa нет в стандартах. в топку. snprintf есть. можно ещё через ostringstream делать.
Код

std::ostringstream oss;
oss<<1024;
std::string str = oss.str();
//... для foo( const char* )
foo( str.c_str() );


Это сообщение отредактировал(а) Mayk - 21.12.2007, 09:29


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
WaReZMEN
Дата 21.12.2007, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

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



Мне нужно на чистом C/C++. я под фултик пишу...
PM MAIL ICQ   Вверх
ksili
Дата 21.12.2007, 09:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Mayk @  21.12.2007,  13:28 Найти цитируемый пост)
itoa нет в стандартах

Подумаешь, нет в стандартах. Мне itoa из трёх приведённых методов гораздо симпатичнее


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Mayk
Дата 21.12.2007, 09:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



Цитата(ksili @  21.12.2007,  13:32 Найти цитируемый пост)

Подумаешь, нет в стандартах. Мне itoa из трёх приведённых методов гораздо симпатичнее 

А потом кому-то захочется вместо строки "1024" получить строку "bytes left: 1024" и все симпатичности куда-то разом пропадают.  smile 
с sprintf/ostream'ом таких проблем нет. 

Цитата(WaReZMEN @  21.12.2007,  13:31 Найти цитируемый пост)
Мне нужно на чистом C/C++. я под фултик пишу... 

snprintf и std::ostringstream и есть чистые с/с++. 


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Lazin
Дата 21.12.2007, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

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



Цитата(ksili @  21.12.2007,  09:32 Найти цитируемый пост)
Мне itoa из трёх приведённых методов гораздо симпатичнее 

это называется сам себе злбный буратино)))
если пишешь на С++, то нужно использовать его возможности, а это в первую очередь iostream (stringstream), он безопасен по отношению к типам, не может привести к порче стека, и прочим радостям..
Ктому-же код с printf-ами и itoa-ми сложнее читать. Но зато они немного быстрее работают. Так-что их применение только код, основное занятие которого форматирование больших объемов текста.
зы
еще есть boost::format
PM MAIL Skype GTalk   Вверх
ksili
Дата 21.12.2007, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата(Lazin @  21.12.2007,  13:51 Найти цитируемый пост)
Ктому-же код с printf-ами и itoa-ми сложнее читать

Дело привычки. Мне itoa легче читать, чем printf'ы и stream'ы


--------------------
Ничто так не развивает аналитическое мышление, как отладка сложной программы без возможности пошагового выполнения (с)
PM MAIL   Вверх
Mayk
Дата 21.12.2007, 10:11 (ссылка) |    (голосов:2) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


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

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



Цитата(ksili @  21.12.2007,  13:55 Найти цитируемый пост)

Дело привычки. Мне itoa легче читать, чем printf'ы и stream'ы 

а мне вообще легче писать и читать 
Код

MessageBox( 0, stringof("error code: ", GetLastError()).c_str(), "oops", MB_OK);

где stringof конвертит пихает все свои арг-ты в string ч/з ostringstream.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
MAKCim
Дата 21.12.2007, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

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



sprintf более медленный чем itoa


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
WaReZMEN
Дата 22.12.2007, 04:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 683
Регистрация: 9.6.2006
Где: Россия, Санкт-Пет ербург

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



Еслши я делаю так

Код

void quickSort(Fl_Widget *, void *) 
{
char *a;
itoa(56,a,10);


  Memo->insert(a);
 

}

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

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

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

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

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


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

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


 




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


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

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