问题:

  • 我有一个基于QT的多平台(win,mac,* nix)应用程序,可解析包含十进制数字的ascii文件。
  • 的解析是使用各种不同的代码段完成的,这些代码段使用qt字符串,c++ stdin,oldstyle scanf等中的任何东西。
  • ascii文件始终带有“。” (点)以小数点分隔(例如,在许多国家/地区,要解析的文件中1/10被写入0.1)。
  • 用户在本地化使用逗号分隔小数的操作系统中使用该应用程序时遇到很多问题(例如,对于法国用户,scanf期望找到0,1作为1/10的有效文本表示形式;如果找到0.1,则scanf会将其解析为0)

  • 如何确保始终忽略必须写小数点的OS语言环境指示?

    假设添加是否安全
     QLocale::setDefault(QLocale(QLocale::English,QLocale::UnitedStates));
    

    足以摆脱所有这些问题?
    关于以便携式方式全局设置语言环境的任何建议?

    最佳答案

    是的,这应该足够了,因为这意味着在没有参数的情况下创建QLocale的任何地方都将使用美国英语。范围是应用程序(QApplication)范围。

    关于c++ - QLocale,全局QLocale::setDefault()的范围是什么?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2585289/

    10-12 01:46