Python 3.2:PyInitialize()重置wchar\u t的宽度 我是一个Python新手,在Python 3.2中嵌入C++代码时有问题。
这里有一个例子。代码如下所示:Python 3.2:PyInitialize()重置wchar\u t的宽度 我是一个Python新手,在Python 3.2中嵌入C++代码时有问题。,c++,python,python-3.x,cout,C++,Python,Python 3.x,Cout,这里有一个例子。代码如下所示: std::cout << "Hello world" << std::endl; std::wcout << "Hello world" << std::endl; PyIntitialize(); std::cout << "Hello world" << std::endl; std::wcout << "Hello world" << std::endl;
std::cout << "Hello world" << std::endl;
std::wcout << "Hello world" << std::endl;
PyIntitialize();
std::cout << "Hello world" << std::endl;
std::wcout << "Hello world" << std::endl;
Hello World
Hello World
Hello World
H e l l o W o r l d
看起来,wchar\u t的宽度已被Python重置为其原始大小的两倍。另一方面,初始化后字符的宽度保持不变
详情:
Win7-64位。
VisualStudio 2008用于上面的C++代码示例。
我还使用VisualStudio2008从源代码构建Python
为什么Python要更改stdoutput流(如果看起来确实是这样的话),我可以做些什么来解决这个问题?我们在整个代码中都使用wcout,因此它必须工作(事实上,在我们使用python2.6的时候也是如此)
非常感谢。嗯,它确实看起来很奇怪,但显然,
wchar\u t
没有修改它的宽度!您的问题被截断在“中是否有设置”--缺少某些内容。:)可能与格式标志有关。比较cout的输出谢谢,我将按照Spencew的建议检查格式标志。此外,正如我提到的,我正在从源代码构建Python。在我将最初的问题发布给小组之后,我尝试将VisualStudio中的“字符集”设置从“未设置”更改为“使用Unicode字符集”,然后重新构建。我的想法是,这可能会解决wchar_t宽度的问题。你有太多的未知因素,无法取得多大进展。首先,尝试排除从源代码构建Python作为问题的候选。我不敢相信你第一次没提到那件事!尝试使用标准的二进制发行版,看看是否会出现相同的行为。如果有,你可以缩小搜索范围。