Member 12330615 Ответов: 3

Как преобразовать целочисленное значение в тип данных char?


Как новичок в VC++,

Я хочу подтвердить, что максимум целочисленной переменной может быть преобразован в char sizeof 6.

Например,
int x;

CString s = L"";

char    CHAR6BYTES[6];

s.Format(_T("%06d"), x);

::ZeroMemory(CHAR6BYTES,6);

WideCharToMultiByte(CP_ACP, s.GetBuffer(), s.GetLength(), CHAR6BYTES, 6, NULL, NULL);

Это лучший способ преобразовать целочисленную переменную в переменную размера char 6?
Или кто знает лучшие способы...

Заранее спасибо.

Что я уже пробовал:

Нахождение 2 часов поиска в интернете ...

3 Ответов

Рейтинг:
2

Graeme_Grant

Я не программирую на C++, если только это не нужно. Поэтому, когда я застреваю, поиск в Google - это мой первый шаг, поскольку я знаю, что я не единственный, кто столкнулся с проблемами, которые я испытываю. Быстрый поиск доказывает это каждый раз.

Таким образом, Интернет может быть мощным инструментом помощи, вашим лучшим другом и вашим наставником, когда он используется. Эта поисковая ссылка содержит множество решений для вас: c++ преобразование int в char[^]


Рейтинг:
0

Richard MacCutchan

Это один из способов сделать это. Но почему вы создаете строку Unicode, а затем преобразуете ее в ASCII? Создайте в ASCII в первую очередь что-то вроде:

char sNumber[7];
sprintf_s(sNumber, 7, "%06d", x);


CPallini

Действительно. Мой 5.

Рейтинг:
0

CPallini

Ваш код вызывает много вопросов.

  1. Почему вы хотите ограничить вывод шестью символами (в то время как, вы знаете, int может быть гораздо больше)?
  2. Почему вы пытаетесь представить неинициализированный ценность (x)?
  3. Почему вы сначала представляете int значение с широкой строкой, а затем преобразование его в ANSI?


Ричард код, очень тщательно обращаясь к пункту 3, показывает путь. Однако, если вы удалите ограничение в шесть символов, вы также можете использовать следующий подход:
#include<iostream>
#include <sstream>
using namespace std;

int main()
{
  int i = 12345;

  string s;
  ostringstream iss;
  iss << i;
  s = iss.str();
  cout << "the string representation of the number is " << s << endl;
}


Richard MacCutchan

Для C++ гораздо лучше, чем мое предложение. +5

CPallini

Ваш код действительно хорош.
Кстати, спасибо.