Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/131.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.2:PyInitialize()重置wchar\u t的宽度 我是一个Python新手,在Python 3.2中嵌入C++代码时有问题。_C++_Python_Python 3.x_Cout - Fatal编程技术网

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作为问题的候选。我不敢相信你第一次没提到那件事!尝试使用标准的二进制发行版,看看是否会出现相同的行为。如果有,你可以缩小搜索范围。