Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.76/25: Рейтинг темы: голосов - 25, средняя оценка - 4.76
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82

CString to int (не совсем то, про что Вы подумали)

20.07.2011, 16:32. Показов 5396. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Имеется 16-ти ричное число, вида:

C++
1
2
CString digits;
digits = "0xffff";
т.е. обычный unsigned short.

вопрос в том, как мне перевести digits ---(from CString)---> int ?

Спасибо!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.07.2011, 16:32
Ответы с готовыми решениями:

Закрывается командная строка (не то, что вы подумали =) )
Суть в том, что командная строка при выполнении программы закрывается через какое-то время.К примеру, я успеваю ввести динамический массив...

Как правильно записать данные в БД(Не то что вы подумали)
есть таблица с перечнем полей к примеру ФИО Адрес Телефон Образование Пол и еще много каких нибуть с помощью связи...

перевод из CString EditBox'a в int, потом вывод массива int в другой EditBox
Программа на Visual C++ 6.0 Сильно не бить если сложно понять этот ужас. Если кому надо пояснялки могу добавить. Вопрос в следующем: ...

9
 Аватар для xAtom
935 / 760 / 299
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
20.07.2011, 17:37
like this
C++
1
2
3
CString  str = "0xffff";    
unsigned short num;
sscanf((const char*)str, "%x", &num);
1
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
20.07.2011, 22:16  [ТС]
Цитата Сообщение от xAtom Посмотреть сообщение
like this
C++
1
2
3
CString  str = "0xffff";    
unsigned short num;
sscanf((const char*)str, "%x", &num);
Пишет:
error C2440: 'type cast' : cannot convert from 'CString' to 'const char *'
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.07.2011, 23:15
Как вариант можно попробовать
C++
1
2
CString  str = "0xffff";
(unsigned int)atof(str);
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
20.07.2011, 23:26
Для проверки сделал по быстренькому MFC-проектик, код с atof не катит, работает вот такой вариант
C++
1
2
3
CString  str = "0xffff";        
    sscanf(str.GetBuffer(str.GetLength()), "%x", &m_edit1);
    UpdateData(false);
Вот сам проект, для конвертации строки нужно нажать кнопку ОК
Вложения
Тип файла: rar str2uint.rar (8.7 Кб, 27 просмотров)
1
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
21.07.2011, 11:07  [ТС]
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Для проверки сделал по быстренькому MFC-проектик, код с atof не катит, работает вот такой вариант
C++
1
2
3
CString  str = "0xffff";        
    sscanf(str.GetBuffer(str.GetLength()), "%x", &m_edit1);
    UpdateData(false);
Вот сам проект, для конвертации строки нужно нажать кнопку ОК
Пишет ошибку вида:

error C2664: 'sscanf' : cannot convert parameter 1 from 'wchar_t *' to 'const char *'

Если меняю так:


C++
1
2
3
4
    CString  str;
    str = "0xffff";      
    UINT m_edit1;
    sscanf((const char*)str.GetBuffer(str.GetLength()), "%x", &m_edit1);
тогда вообще всегда в m_edit1 оказывается нуль, на сколь я понимаю он считывает только первый символ из str и это его вполне удовлетворяет.

Мб что-то нужно сменить в настройках проекта? (Ошибка в моем проекте, Ваш проект работает на УРА!)

Добавлено через 28 минут
(Project->Properties->Configuration Properties->General->Project Defaults->Character Set) to Not Set.

Сменил настройки так.

Матюгаться перестал, но стиль окна изменился.... в стиль древнего win98.

Мб есть иные способы перевода wchar_t * в const char* ?

Добавлено через 1 час 7 минут
Извиняюсь за грубое слово, но затрахался я два дня заниматься этой ***** мутотенью..

Вот как реализовал (я работал в режиме UNICODE)

C++
1
2
3
4
5
6
7
8
9
10
11
char 16bits[7];
char mass[1][1];
CString str;
unsigned short y;
 
str=_T("0xffff");
 
for(int i=0; i<6; i++)
wctomb(npath[i], str.GetBuffer()[i]);
 
sscanf(npath[0], "%x", &y);
(y=65535, т.е. тоже самое, что и встроке, только лежит в int и записано 1-ричной системе).
0
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
21.07.2011, 13:55
C++
1
int n = _wtoi(str.GetString())
Так не работает?
1
4 / 4 / 1
Регистрация: 18.04.2010
Сообщений: 82
21.07.2011, 14:50  [ТС]
Цитата Сообщение от bigredcat Посмотреть сообщение
C++
1
int n = _wtoi(str.GetString())
Так не работает?
Нет.. все способы перепробовал. выше - рабочий.
1
375 / 322 / 32
Регистрация: 24.02.2011
Сообщений: 1,512
Записей в блоге: 1
21.07.2011, 17:06
Да, _wtoi не переваривает hex представление числа
Но это работает:
C++
1
swscanf(str.GetString(), L"%i", &num);
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,852
22.07.2011, 09:35
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
код с atof не катит
трудно сделать шоб он катил
atof для плавающей запятой
atoi для целочисленной
Функция atoi (ASCII to integer, из ASCII в целое число) в языке программирования Си используется для приведения (конвертации) строки в числовой вид.
int atoi(const char *str)

Аргумент str означает строку, представленную в виде массива символов, содержащего символы знакового целого (тип int) числа. Строка должна быть нуль-терминированной, то есть оканчиваться символом «\0». Когда atoi() получает строку без числовых последовательностей, то в этом случае возвращает ноль (0). Если строка содержит корректную последовательность цифр, представляющих число 0, то также возвращается 0, при этом по возвращаемому числу невозможно определить содержит ли строка корректное число или нет. Более новая функция strtol не имеет подобного недостатка.

Варианты функции atoi — atol, atof и atoll (впоследствии известная как atoq) используются для приведения строки к типам long, double или long long, соответственно:
long atol(const char *str)
double atof(const char *str)
long long atoll(const char *str) (C99)
Функция atof в языке программирования Си используется для приведения (конвертации) строки в числовой вид (к числовому типу). Её объявление выглядит следующим образом
double atof (const char *string)

где string - текстовое представление числа с плавающей точкой двойной точности (double). Если строка не является корректным текстовым представлением числа double, то функция atof "тихо" завершит работу, возвратив ноль (0.0).

Необходимо отметить, что atoi и atol возвращают переменные типы в зависимости от своих названий ("atoi" возвращает integer (целое), а "atol" возвращает числа типа long integer (длинное целое)), тогда как atof не возвращает float (числа с плавающей запятой) как этого можно было бы ожидать, а вместо этого возвращает double (число с плавающей точкой двойной точности).

Схожей функцией является sscanf. Эта функция извлекает значения из строк и возвращает полученный аргумент как число корректных значений, извлечённых ею (то есть, в отличие от atof, функция sscanf может быть использована для проверки, начинается ли строка с корректного числа). Проще говоря, значение, возвращаемое функцией, равно количеству переменных, которым реально были присвоены значения.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.07.2011, 09:35
Помогаю со студенческими работами здесь

Преобразование int в CString ?
Подскажите как преобразовать? itoa преобразовует в *char, а хотелось бы сразу в CString...

Как из CString получить int ... заранее спасибо!!
Проблемка ... Как из CString получить int.... только плиз не советуйте куда заглядывать в MSDN у меня его нету.... СПАСИБО....

Как перевести CString -ское число в Int?
Есть CString -ское число. Как перевести это число в int??? Вот: { m_cap = m_cap + '1'; m_cap = c; int c = attol(m_cap); c =...

Вечный вопрос))CString to float/string/int
Интересует такое... в проекте MFC нужно перевести строку с Edit Text в типы float int или string...сколько способов не пробовал но...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru