C++ to_字符串未在范围中声明
我试图让C++ to_字符串未在范围中声明,c++,ubuntu,qt-creator,C++,Ubuntu,Qt Creator,我试图让to_string(NUMBER)函数在我的Ubuntu计算机上运行数周,但它从未在QT环境或其他任何地方运行过。我的代码在我的MacOSX上运行得非常好,但当我在Ubuntu上运行它时,它会抱怨to_string没有在范围内声明。对此的任何解决方案都将不胜感激。我曾尝试更新gcc编译器,但没有解决问题。请帮忙 我使用QTCRORE 4.4.1,我用C++和最新版本的Ubuntu。p> int Bint::operator*(int temp){ Bint b(to_string
to_string(NUMBER)
函数在我的Ubuntu计算机上运行数周,但它从未在QT环境或其他任何地方运行过。我的代码在我的MacOSX上运行得非常好,但当我在Ubuntu上运行它时,它会抱怨to_string
没有在范围内声明。对此的任何解决方案都将不胜感激。我曾尝试更新gcc编译器,但没有解决问题。请帮忙
<>我使用QTCRORE 4.4.1,我用C++和最新版本的Ubuntu。p>
int Bint::operator*(int temp){
Bint b(to_string(temp));
return ((*this)*b);
}
我在pro文件中缺少QMAKE_CXXFLAGS+=-std=c++0x 它不适用于您可能有不同的原因:可能您需要使用
std::
限定名称,或者您没有C++11支持
如果您具有C++11支持,则此功能有效:
#include <string>
int main()
{
std::string s = std::to_string(42);
}
#包括
int main()
{
std::string s=std::to_string(42);
}
要使用g++或clang启用C++11支持,需要传递选项
-std=C++0x
。您还可以在这些编译器的较新版本上使用-std=c++11
。您必须使用c++11支持编译该文件
g++ -std=c++0x -o test example.cpp
我通过将Application.mk中的第一行从
APP_STL := gnustl_static
到
您需要在编译器中进行一些更改。 在DEV C++编译器中: 1.转到编译器设置/编译器选项。 2.单击常规选项卡 3.选中复选框(在调用编译器时添加以下命令)。 4.write-std=c++11
5.单击“确定”上述正确识别的错误是由于编译器未使用c++11或更高标准。此答案适用于Windows 10
//Try this if you can't use -std=c++11:-
int number=55;
char tempStr[32] = {0};
sprintf(tempStr, "%d", number);
对于代码块版本17中的c++11及以上标准支持:g++-v
在cmd中检查g++的版本如果您想从输入文件中获取输入和输出,以便进行竞争性编程,请遵循此操作。您应该发布一些代码,以便我们可以查看。您如何将此
称为\u string()
?是否在.pro文件中添加了QMAKE_CXXFLAGS+=-std=c++0x
?是否在调用前添加std::?是的,我将使用名称空间std添加到了_string()| |!到了_string()中
…这就是问题所在…如果这个答案有任何问题,我想知道,这样我就可以解决它。这个答案应该被选为答案。Ubuntu还没有C++11吗?@MattMcNabb是的,但这取决于你使用的Ubuntu和gcc的版本have@Frankenstein我应该在哪里写“g++-std=…”?我正在使用代码块。添加给定行后,我面临此错误D:\VU\u classes\CS201\Assignments\g++.exe[error]5:没有这样的文件或目录它适合我,谢谢
//Try this if you can't use -std=c++11:-
int number=55;
char tempStr[32] = {0};
sprintf(tempStr, "%d", number);