c++ %f点代替逗号

C++ %f dot instead of comma

本文关键字:c++      更新时间:2023-10-16

我正在阅读c++中的一个文件,其中浮点数(%f)有一个点而不是逗号。

文件中的每一行都有3个这样的数字

1.000 -1.000 0.000
例如

我的应用程序不希望读取超过点的数字,所以如果我读取

fscanf(file, "%f %f %fn", &x, &y, &z );
例如,

将x设置为1,其他所有内容都保留为0,因为它只读取到第一个点。

我已经在某个地方读到,我应该使用setlocale或类似的东西来改变区域设置,但它没有成功。

谁能解释一下如何正确地做或者是否有其他方法?


编辑:

我把"QT"从标题里去掉了。首先它在那里,因为我认为也许QT有一些特殊的设置或地方的东西。奇怪的是,我的ST3默认C++ Single File构建系统的区域设置已经设置为使用点而不是逗号,但我不得不在QT中设置它。

你可以添加

setlocale(LC_ALL, "C"); 

在呼叫fscanf之前。一定要加上

#include <locale.h>

能够呼叫setlocale

关于setlocale的更多信息请访问http://en.cppreference.com/w/c/locale/setlocale。

相关文章:
  • 没有找到相关文章