Рейтинг:
2
Richard MacCutchan
Это не имеет ничего общего с МФЦ, это базовые вычисления. Если вы определяете переменную как char
введите и дайте ему числовое значение, а затем попробуйте отобразить его, тогда он покажет фактический символ, если он доступен для печати. Например:
char inchar = 65;
cout << "Character code 65 is : " << inchar << endl;
будет производить выход:
Character code 65 is : A
Точно так же если вам нужно числовое значение вам просто нужно привести его к целому числу таким образом:
char inchar = 'Q';
int qvalue = (int)inchar;
Member 14837073
Спасибо ,давайте попробуем, и я обновлю один раз, когда закончу
Member 14837073
for (int i = 0; i < 122; i++){
int asciiVal = rand()%97 + 122;
чар asciiChar = asciiVal;
cout << asciiChar < & lt; " ";
}
Над ворвется в Филадельфию, наполняя я получаю ошибку ,я хочу, чтобы напечатать значение символа "A" до "Z" и тупеть в статический текст в MFC
BOOL CAsciidemoDlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// Добавьте пункт меню "О программе..." в системное меню.
// IDM_ABOUTBOX должен находиться в диапазоне системных команд.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
если (pSysMenu != nullptr)
{
BOOL bNameValid;
CString в strAboutMenu;
bNameValid = strAboutMenu.Методом loadstring(IDS_ABOUTBOX);
ASSERT(bNameValid);
если (!страбутмену.Отсутствуют())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Установите значок для этого диалогового окна. Фреймворк делает это автоматически
// когда главное окно приложения не является диалогом
SetIcon(m_hIcon, TRUE); // установить большой значок
SetIcon(m_hIcon, FALSE); // установить маленький значок
char nchar = 65;
m_ASCIIRESULT = nchar; /** здесь я хочу заглушить данные, которые я получу
выход в cout.
// TODO: добавьте дополнительную инициализацию здесь
return TRUE; // return TRUE, если вы не установите фокус на элемент управления
}
Richard MacCutchan
Я понятия не имею, что все это значит. Печатаемые символы ASCII начинаются с пробела при значении 0x20 и продолжаются до 0x7E, Тильды"~". Числа, которые вы используете, несколько случайны.
Что касается вашего диалогового кода, то если вы собираете символы, которые Вы читаете с какого-то внешнего устройства, то вам просто нужно накапливать их по мере чтения, а затем передавать полный набор в текстовый элемент управления.
Member 14837073
u помогите мне изменить код, который я пытался напечатать ASCII-символ ..
Richard MacCutchan
Я понятия не имею, что это значит. Ни один из приведенных выше кодов не имеет никакого смысла по отношению к вашему первоначальному вопросу.
jeron1
for (int i = 0; i < 122; i++){
int asciiVal = rand()%97 + 122;
char asciiChar = asciiVal;
cout << asciiChar << " ";
}
Это то, как вы пытаетесь напечатать " а "через " я"?
Member 14837073
Да ,там что-то не так, понятия не имею
jeron1
как насчет чего-то вроде;
for (int i = 'a'; i <= 'z'; i++)
{
cout << i <<" ";
}
Member 14837073
Выше код символа в ASCII-код ,(который сделал код, основанный на том, что)
который я уже упоминал, код ASCII преобразуется в символ (мой ожидаемый).
TRACE( "ASCII format is : %c\n", myByte ); //solutions 2 it help me out in mfc to get character
jeron1
Извините, что я не понимаю, что вы пытаетесь сделать. Вы пытаетесь поместить символы в поле редактирования, которое находится в диалоговом окне? Если да, то как насчет вызова метода SetWindowText() вашего элемента управления редактированием с любым текстом, который вы хотите.
Рейтинг:
1
Rick York
Я думаю, что важно понимать, что то, что вы делаете, это НЕ преобразование символов. Все это не имеет никакого отношения к конверсии. Речь идет о форматировании дисплея. Данные могут быть отображены в любом формате, который вы хотите.
То, что у вас есть-это байт. Этот байт может иметь значение от 0 до 255 в базе 10. Он может варьироваться от 0 до FF в базе 16 или шестнадцатеричном формате и от 0 до 11111111 в базе 2 или двоичном формате. Данные есть данные. Нет ничего, что делает байт символом ASCII или шестнадцатеричным символом или чем-то еще. Это всего лишь байт. То, что я только что показал вам, - это три разных интерпретации этого байта- он был показан в трех разных форматах.
Поскольку вы используете MFC, рассмотрите возможность использования макроса трассировки и просмотра выходных данных в IDE. Это позволит вам играть с опциями форматирования. Вот код, который будет отображать один и тот же байт в трех различных форматах в окне вывода среды IDE Visual Studio :
TRACE( "decimal format is : %d\n", myByte );
TRACE( "hexadec format is : %02X\n", myByte );
TRACE( "ASCII format is : %c\n", myByte );
Обратите внимание, что это один и тот же фрагмент данных, отображаемый тремя различными способами, и в каждом случае он имеет одно и то же значение.
Member 14837073
Спасибо , я попробую это сделать
Member 14837073
я начинаю с базового ,мое требование заключается в том ,что мои данные поступают из аппаратного обеспечения ,основанного в формате ASCII, над кодом, который я хочу напечатать в статическом тексте в mfc, как мне это сделать
m_result_ascii ///переменная статического текста