关于wchar_t类型的输出
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于wchar_t类型的输出相关的知识,希望对你有一定的参考价值。
我们知道,_TCHAR等同于wchar_t,它的输出不能用cout而要用wcout。
那对于下面这个程序编译出的可执行文件abc.exe,在DOS下输入:
abc.exe the string
想要的输出为:
================
3
the
string
abc我de
================
但是实际上的输出为:
================
3
003B5070
003B5086
003B508E
abc
================
即部分只显示地址,部分显示不全。
源程序如下:
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
wcout<<argc<<endl;
int i;
for(i=0;i<argc;i++)
cout<<argv[i]<<endl;
wchar_t b[] = L"abc我de";
wcout<<b;
return 0;
另外
for(i=0;i<argc;i++)
i应该从1取值。
SWIG:对 Java 的 wchar_t 支持
【中文标题】SWIG:对 Java 的 wchar_t 支持【英文标题】:SWIG: wchar_t support for Java 【发布时间】:2015-09-14 19:07:36 【问题描述】:我在 C# 中使用 %include wchar.i
,它似乎对映射到 C# 的 string
的所有 wchar_t
值和数组都能正常工作。 Swig 的 Python 库还在 wchar.i
文件中包含 wchar_t
的类型映射。
Java 的库没有wchar.i
。这是什么原因?以及如何实现从 C++ 中的 wchar_t
类型到 Java 中的 String
的类型映射?
【问题讨论】:
【参考方案1】:当您使用 c++ 时,您可以尝试使用 std::wstring
,因为它具有适用于所有类型的类型映射:C#、Python 和 Java。在std_wstring.i
【讨论】:
由于各种原因,我无法使用 STL。不过谢谢回复 经过一番搜索,我发现 wchar 长度取决于,在一个平台上它有 2bits 并且可以直接转换为 jchar,在其他平台上有 4bits 并且需要其他威胁,更多关于 wchar c++->Java 你可以在这个线程中找到:https://community.oracle.com/message/6466730#6466730以上是关于关于wchar_t类型的输出的主要内容,如果未能解决你的问题,请参考以下文章
关于 char wchar_t TCHAR _T() ||| 宏 _T TEXT _TEXT L