如何输出从右到左阅读的语言?

时间:2013-12-08 04:47:55

标签: c++ c linux windows

我很好奇如何处理从右到左阅读的语言(例如阿拉伯语,希伯来语)的输出。几乎C / C ++中的所有内容或我见过的任何语言都是以从左到右的输出为前提的。

是否有系统调用或强制终端的东西,例如,从右到左打印?即便如此,在程序字符串内部编码如字符串(“这是一个字符串”)。它不是必须编写类似字符串的代码(“字符串a就是这个”)或者某些反向函数可以用于所有内容吗?

2 个答案:

答案 0 :(得分:1)

我怀疑在实践中,为从右到左配置语言的系统将从右到左对打印进行终端设置,因此C / C ++程序的内部不必担心它

如果这不能让你放心,这就是黑客:

string str = "The look on your face is priceless.";
cout << "\u202e" << str << endl;

答案 1 :(得分:0)

在最低层,有extended window styles用于以“从右到左”排序设置窗口:WS_EX_LAYOUTRTL,WS_EX_RIGHT和WS_EX_RTLREADING。此外,API调用SetProcessDefaultLayout with LAYOUT_RTL。这些标志和API的正确组合意味着(0,0)坐标是窗口的右上角,x轴线性增加。

以下是classic MSDN article的链接,其中解释了所有细节。