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

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

07.03.2015, 21:45. Показов 2265. Ответов 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
8484 / 6151 / 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
Сообщений: 594
06.02.2017, 11:21
Здравствуйте форумчане. Хочу использовать в консоли AnsiString или UnicodeString. Скопировал полностью
маленький пример из поста #2 (от Avazart).
Компиляция проходит совершенно гладко, но при сборке получаю десятки сообщений о том, что не находит
реализации кучи функций с AnsiString и UnicodeString (Unresolved external ...). Работаю в RAD Studio XE3.
Может в ней не достает каких-то установок или хедеров ?

Подскажите пожалуйста, в чем причина такой беды ?
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33372 / 21498 / 8234
Регистрация: 22.10.2011
Сообщений: 36,894
Записей в блоге: 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
Сообщений: 594
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
Ответ Создать тему
Новые блоги и статьи
YAFU@home — распределённые вычисления для математики. На CPU
Programma_Boinc 20.01.2026
YAFU@home — распределённые вычисления для математики. На CPU YAFU@home — это BOINC-проект, который занимается факторизацией больших чисел и исследованием aliquot-последовательностей. Звучит. . .
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru