微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何以编程方式C / C ++获得Linux上的国家代码?

我将我的应用程序移植到Linux(从Windows)。

我有这样的代码

char buffer[32] = {0}; if ( GetLocaleInfoA(LOCALE_USER_DEFAULT,LOCALE_ICOUNTRY,buffer,_countof(buffer)) ) { std::string newPrefix(buffer); if ( !newPrefix.empty() && ( newPrefix != "-1" ) ) { countryPrefix_ = newPrefix; } }

我需要一个返回“基于国际电话代码的国家/地区代码”的function(例如,美国和加拿大的“1”,澳大利亚的“61”等等)

国家应从操作系统的date/时间设置(在Windows中:控制面板 – 区域和语言选项)。

在Linux上使用桌面作为canvas

C ++ 11:g ++ – 4.7内部编译错误

是以任何方式多次打开共享内存?

如何通过键查找/检查字典值

为.NET开发和debugging优化IIS7

在Windows中相当于./configure?

如何在Win32中使用Dialog资源?

为什么两个进程在FIFO被删除之后仍然可以使用FIFO来进行通信?

如何以编程方式更改Windows 10任务栏图标大小

麻烦交叉编译ARM9 Montavista Linux的OpenCV

Unix没有OS宽区域设置。 可以为不覆盖它的用户使用认值,但大多数用户会覆盖它。 把它作为“C”是很常见的。

没有标准的C或C ++方法获取你想要的信息。

获取与区域相关信息的posix方法是设置区域设置和使用nl_langinfo()(返回一个char* )。 虽然没有为国际电话代码定义的POSIX宏,glibc有一个扩展( _NL_TELEPHONE_INT_PREFIX )。

例:

#include <langinfo.h> ... if (setlocale(LC_ALL,"") == NULL) { fprintf(stderr,"Unable to set locale.n"); abort(); } printf("Telephone international prefix: %sn",nl_langinfo(_NL_TELEPHONE_INT_PREFIX));

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐