![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 26.05.2011
Сообщений: 12
|
![]()
Здравствуйте. У меня почемуто падает программа, когда я хочу вывести переменную типа int в сообщениеи MessageBox. А компилятор ошибку не находит.
Надо переменную типа "char" перевести в тип "int", потом произвести с ней матиматические действия, и вывести результат на экран. Вот код: char a[256] = "12345"; int b = (int)a; b = b + 123; char c = (char)b; MessageBoxA (NULL, (LPCSTR)c, "title", NULL); Помогите пожалуйста решить эту проблему. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а вы не пробовали целочисленную переменную в строку сначало перевести?
а то понаставили приведений типов... Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
![]() Код:
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 26.05.2011
Сообщений: 12
|
![]()
теперь уже программа не падает, но почемуто выводится только одна цифра, самая первая, а остальных почемуто не видно.
char a[256] = "12345"; int b = (int)a; b = b + 123; wchar_t c[100]; swprintf(c, L"%d", b); MessageBoxA (NULL, (LPCSTR)c, "title", NULL); |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 26.05.2011
Сообщений: 12
|
![]() |
![]() |
![]() |
![]() |
#6 |
Software Engineer
Участник клуба
Регистрация: 07.04.2007
Сообщений: 1,618
|
![]()
у вас переменная a имеет тип char*, а не char
Мужество есть лишь у тех, кто ощутил сердцем страх, кто смотрит в пропасть, но смотрит с гордостью в глазах. (с) Ария
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 26.05.2011
Сообщений: 12
|
![]()
если писать так
char a[256] = "12345"; int b = (int)a; b = b + 123; char c[100]; ltoa(b,c,100); MessageBoxA (NULL, (LPCSTR)c, "title", NULL); то выводятся четыре каких то иероглифа вместо цифр |
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 26.05.2011
Сообщений: 12
|
![]()
если писать так
char a[256] = "12345"; int b = (int)a; b = b + 123; char c[100]; ltoa(b,c,100); MessageBoxA (NULL, (LPCSTR)c, "title", NULL); то выводятся четыре каких то иероглифа вместо цифр |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 19.08.2009
Сообщений: 2,119
|
![]()
Юрий90
проблема в неумелом использовании олд-скульных средств и непонимании принципа работы с массивами и указателями. вариант для домохозяек и джедаев в одном флаконе: std::string s = "12345"; std::stringstream ss(s); int n; ss >> n; n += 123; ss.str(""); ss.clear(); ss << n; ss >> s; MessageBoxA(NULL, s.c_atr(), "zzz", MB_OK);
А вы почему со мной не соглашаетесь, у вас что, импотенция? (c) ACE Valery
|
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Калькулятор с римскими цифрами | WideSide | Помощь студентам | 1 | 04.05.2011 20:31 |
Проблема с цифрами | CrazyTosser | Помощь студентам | 8 | 07.02.2011 09:00 |
Пробелы между цифрами | duny99 | Помощь студентам | 9 | 06.02.2011 13:24 |
Прога со строками и цифрами | anybkarnak | Общие вопросы C/C++ | 1 | 08.03.2010 21:19 |