Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
78 / 78 / 11
Регистрация: 02.12.2011
Сообщений: 296

Преобразование массива Unicode для вывода в консоль

07.03.2015, 21:45. Показов 2307. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
...Доброго времени суток, уважаемые форумчане! Возник, наверное, банальный вопрос: как преобразовать элементы Unicode-массива назад в символы (с "прокруткой" в цикле)? ...Код приведе ниже:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
 #include <iostream.h>
 #include <conio.h>
 #include "system.hpp"
 #include <cstdlib.h>
 
 #pragma hdrstop
 #pragma argsused
 //---------------------------------------------------------------------------
 
 int main(int argc, char* argv[])
  {
  // Исходная строка в формате AnsiString
     AnsiString Ansi_Str = "It is an initial line in format AnsiString";
  /* Создание массива-приемника размером, соответствующим
   * длине исходной строки */
     wchar_t* UnicodeString = new wchar_t [Ansi_Str.WideCharBufSize()];
     Ansi_Str.WideChar(UnicodeString, Ansi_Str.WideCharBufSize());
// -------------------------------------------------------
// ***********  РАЗЛИЧНЫЕ ВАРИАНТЫ ВЫВОДА  *************
  // Вывод данных по адресу указателя - получаем код первого символа
     cout << "Output UnicodeString: " << *UnicodeString << endl;
// -------------------------------------------------------
  // Вывод строки через указатель - получаем значение указателя
     cout << "Output UnicodeString: " << UnicodeString << endl;
// -------------------------------------------------------
     cout << " \n";
  // *******  Вывод строки перебором массива  ********
  // Число символов в строке
     int n = Ansi_Str.Length();
  /* В цикле считываем массив и получаем коды всех
   * элементов Unicode-массива */
    for (int i = 0; i < n; i++)
     {
        cout << UnicodeString[i] << endl;
     }
// ------------------------------------------------------
     cout << " \n\n";
// ------------------------------------------------------
  /* В цикле считываем массив и получаем коды всех
   * элементов Unicode-массива, которые преобразуем в
   * символы и выодим на экран. */
    for (int j = 0; j < n; j++)
     {
      //  Как выполнить преобразование?
     }
// ------------------------------------------------------
 // Используем полученную строку, затем удаляем
    delete [] UnicodeString;
    getch();
   return 0;
 }
//---------------------------------------------------------------------------
Заранее благодарен за ответ.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
07.03.2015, 21:45
Ответы с готовыми решениями:

Преобразование цикла для вывода на консоль
Подскажите пожалуйста, как сделать вывод на консоль задаваемого значения с клавиатуры, чтобы мы вводили с клавиатуры, к примеру ...

Подготовить числа для вывода на консоль через ASCII и вывести на консоль
В регистре eax находится число, которое нужно превратить в ASCII-код и вывести на консоль символы, которые соответствуют полученному. ...

Принцип вывода массива в консоль
1-й цикл for задаёт кол-во строк, 2-й кол-во элементов в каждой строке. Но если j&lt;4 , то программа отображается не корректно, если...

4
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
08.03.2015, 16:34
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream> //  std::cout,  std::wcout
//...
#include <vcl.h> // AnsiString, UnicodeString
 
int main()
{
    AnsiString     as= "ansi";
    UnicodeString  us= L"uni";
 
    std::cout<< as << std::endl;
    std::wcout<< us << std::endl;
 
   return 0;
};
1
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
06.02.2017, 11:21
Здравствуйте форумчане. Хочу использовать в консоли AnsiString или UnicodeString. Скопировал полностью
маленький пример из поста #2 (от Avazart).
Компиляция проходит совершенно гладко, но при сборке получаю десятки сообщений о том, что не находит
реализации кучи функций с AnsiString и UnicodeString (Unresolved external ...). Работаю в RAD Studio XE3.
Может в ней не достает каких-то установок или хедеров ?

Подскажите пожалуйста, в чем причина такой беды ?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33404 / 21514 / 8236
Регистрация: 22.10.2011
Сообщений: 36,914
Записей в блоге: 12
06.02.2017, 12:11
Проект как создавался? В XE4 попробовал так (обрати внимание на Target Framework) :



, все нормально. Ну, за исключением, что пришлось добавить
C++
1
2
    std::cout << as.c_str() << std::endl;
    std::wcout << us.c_str() << std::endl;
1
98 / 81 / 14
Регистрация: 26.07.2013
Сообщений: 596
06.02.2017, 12:32
Спасибо volvo. Действительно проект создавал с TargetFramework - None, а не VisualComponentLibrary.
Теперь все работает нормально. Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.02.2017, 12:32
Помогаю со студенческими работами здесь

Функция вывода в консоль двумерного массива
Доброго времени суток. Написал функцию вывода массива в консоль, но компилятор ругается. Где ошибка, подскажите? ...

Реализовать функцию заполнения массива и вывода его на консоль
visual studio нужно в функции заполнить массив и вывести его из функции мой код снизу не получается #include &quot;stdafx.h&quot;...

Переадресация потока для вывода на консоль
Есть код, который переадресовывает стандартный поток вывода в файл. Вопросов нет. А вот как вернуться обратно? Чтобы снова выводить на...

Функция для вывода сообщения в консоль
В общем есть программа conout.asm extern _lstrlenA@4 extern _WriteConsoleA@20 extern _GetStdHandle@4 global conout ...

Создание цикла для вывода в консоль изображения
Ребята,есть вот такое условие. Запросить у пользователя число, которое будет высотой вершины прямоугольного треугольника. Весь...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru