我在使用C ++的fedora系统上使用Qt 4.8.5编写程序。问题是我有一些关于XML的信息(我的格式无法改变),我对它有一个价值:
ValueA="0.30000"
XML是正确的,阅读也不用担心。问题是:要阅读它,我使用由配偶制作的库的功能(在C ++中也是如此),这就是问题所在。如你所见,分隔符是一个点(不是昏迷),它必须是这样但是...如果我在我的操作系统中用Qt和一个点读取它,我得到的是0
值,而如果我把一个昏迷(0,30000)我得到的是30
(如果左边的那个是0,那么funcion只返回正确的部分。)
我已经遇到过这个问题,我之前需要做的另一个程序具有相同的值,解决方案是将下一行放入main.cpp:
setlocale(LC_ALL,"C");
它有效!!但是现在......做同样的事情(或者至少这是我的想法,因为事情必须改变)它不起作用。我已经尝试过删除setlocale()函数,但程序的行为在有和没有该行的情况下是相同的:我得到30的昏迷和0的点。
是的,每当我改变这样的东西时,我都会运行qmake,清理项目并重建它。
知道我错过了什么或做错了什么,或者我怎么能用xml中的点获得30值?更改库的setlocale,Qt版本或XML中的某些内容不是一种选择,因为它在其他应用程序的硬件中以这种方式工作(但不是我的)。
非常感谢你!
注意:我不明白你为什么投票结束这个话题。我不知道为什么它不起作用......我在询问如何用点读取xml而不是昏迷我认为它对调试问题一无所知