C++ QApplication将std::的值更改为_字符串
Qt似乎将返回的C++ QApplication将std::的值更改为_字符串,c++,qt,C++,Qt,Qt似乎将返回的std::字符串的“解释”更改为_string(double) 例如: #include <iostream> #include <QApplication> #define VERSION 1.0 #define VSIZE 3 int main(int argc, char** argv) { std::string version = std::to_string(VERSION).substr(0, VSIZE); std::co
std::字符串的“解释”更改为_string(double)
例如:
#include <iostream>
#include <QApplication>
#define VERSION 1.0
#define VSIZE 3
int main(int argc, char** argv) {
std::string version = std::to_string(VERSION).substr(0, VSIZE);
std::cout << version << std::endl; // everything fine
QApplication app(argc, argv);
std::cout << std::to_string(VERSION).substr(0, VSIZE); // no good
return 0;
}
我认为这是Qt,因为这是发生这种情况的最薄示例,删除
QApplication
声明使其再次工作。如何修复此问题?由于区域设置已更改,第二次的输出有所不同。我尝试从添加此代码,但仍然无效:(@GiovanniBerti:您尝试了QLocale::setDefault(QLocale::c());
?在QApplication
之前和之后都可以尝试setlocale(LC_ALL,“c”)
。操作系统设置为什么?我在linux上,语言环境是“it_it.UTF-8”。
1.0
1,0