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及以上标准支持:

  • 单击工具栏中的设置

  • 此时会出现一个下拉菜单。选择编译器选项

  • 选择全局编译器设置

  • 在第二部分新窗口的工具栏中,选择编译器设置

  • 然后在下面的工具栏中选择编译器标志选项

  • 展开“常规”选项卡。检查希望编译器遵循的C++标准

  • 单击确定

  • 适用于那些试图在Sublime文本中获得C++11支持的用户。

    >强> >明文编译器版本7 <强>或以上。在下面的版本中,默认的C++标准使用C++ 98,而在高于7的版本中,默认的标准使用C++ 11。< /P>
  • 复制主C驱动器中的文件夹。它不应位于C驱动器中的任何其他文件夹中

  • 将文件夹重命名为MinGW。此名称不区分大小写,因此应包含MinGW的任何变体,且不得在名称中包含任何其他字符

  • 然后转到环境变量并编辑路径变量。添加此“C:\mingw\bin”并单击确定

  • 您可以通过键入
    g++-v
    在cmd中检查g++的版本

  • 这应该足以在升华文本中启用c++11


  • 如果您想从输入文件中获取输入和输出,以便进行竞争性编程,请遵循此操作。

    您应该发布一些代码,以便我们可以查看。您如何将此
    称为\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);