To_string未在作用域中声明

to_string not declared in scope

本文关键字:作用域 声明 string To      更新时间:2023-10-16

我试图使to_string(NUMBER)功能在我的Ubuntu计算机上工作数周,但它从来没有在QT环境或其他任何地方工作过。我的代码在我的Mac osx上工作得很好,但是当我尝试在Ubuntu上运行它时,它抱怨to_string没有在作用域中声明。对此问题的任何解决办法将不胜感激。我试图更新gcc编译器,但它没有解决问题。请帮助。

我正在使用QT Creator 4.8.1,我正在使用c++和最新版本的Ubuntu。

int Bint::operator*(int temp){
    Bint b(to_string(temp));
    return ((*this)*b);
}

我在概要文件中缺少QMAKE_CXXFLAGS += -std=c++0x。

不适合您可能有不同的原因:可能您需要用std::来限定名称,或者可能您没有c++ 11支持。

如果你有c++ 11支持,这个可以工作:

#include <string>
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中的第一行来修复此问题。可

APP_STL := gnustl_static

APP_STL := c++_static

您需要在编译器中做一些更改。在Dev c++编译器中:1. 进入编译器设置/编译器选项。2. 点击常规选项卡3.选中复选框(在调用编译器时添加以下命令)。4. 写化c++ 115. 单击Ok

此错误,如上所述,是由于编译器未使用c++11或更高标准。这个答案适用于Windows 10。

对于c++11及以上版本codeblocks version 17的标准支持:

  1. 单击工具栏中的settings

  2. 出现下拉菜单。选择编译器选项

  3. 选择全局编译器设置

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

  5. 然后选择工具栏下面的编译器标志选项

  6. 展开general选项卡。检查你希望编译器遵循的c++标准

  7. 点击


  1. 下载mingw编译器版本7或以上。在此以下的版本中,使用的默认c++标准是c++98,而在高于7的版本中,使用的默认标准是c++11。

  2. 复制主C盘中的文件夹。不应该在C盘的其他文件夹中

  3. 将文件夹重命名为MinGW这个名字不区分大小写,所以它应该是mingw的任何变体,并且不能在名字中包含任何其他字符。

  4. 然后进入环境变量,编辑路径变量。添加这个" C: mingw bin "并单击OK。

  5. 您可以在cmd中输入g++ -v来检查g++的版本

  6. 这应该足以在sublime text中启用c++11。

如果您想从输入文件中获取输入和输出,以用于竞争性编程目的,请遵循此链接。

//Try this if you can't use -std=c++11:-
int number=55;
char tempStr[32] = {0};
sprintf(tempStr, "%d", number);