我很好奇如何处理从右到左阅读的语言(例如阿拉伯语,希伯来语)的输出。几乎C / C ++中的所有内容或我见过的任何语言都是以从左到右的输出为前提的。
是否有系统调用或强制终端的东西,例如,从右到左打印?即便如此,在程序字符串内部编码如字符串(“这是一个字符串”)。它不是必须编写类似字符串的代码(“字符串a就是这个”)或者某些反向函数可以用于所有内容吗?
答案 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的链接,其中解释了所有细节。