【问题标题】:Simple int to string conversion... Int to const char* invalid [closed]简单的 int 到字符串的转换... Int 到 const char* 无效 [关闭]
【发布时间】:2012-10-14 20:37:33
【问题描述】:

设置:在 Qt Creator 上,我调用了这个函数。我已经导入了所有的 sstream、string 等。它们都在同一个类中,并且在头文件中定义得很好:

std::string int2str(int x) {
    std::stringstream ss;
    ss << x;
    return ss.str();
}

在for循环中:

for (int i = 0; i < 10; i++) {
    std::string s = int2str(i); // error lies on this line
    // a line of Qt code
}

我收到错误 "Invalid conversion from int to const char* [-fpermissive]"。这很奇怪,因为这不正是这个函数应该做的吗?

编辑:不知道如何使用 Qt Creator 来获取更多详细信息...对不起大家。

错误:

初始化'std::basic_string&lt;_CharT, _Traits,_Alloc&gt;::basic_string(const_charT*, const_Alloc&amp;) [with _CharT = char, _Traits = std::char_traits&lt;char&gt;, _Alloc = std::allocator&lt;char&gt;]'的参数1 [-fpermissive] @basic_string.tcc 第214行(/usr/include/c++/4.6/bits/basic_string.tcc)

EDIT2:: 愚蠢的错误,其中之一包括,谈到命名空间。从不指定int2str 在哪里;在它前面使用了myClass::,现在一切都好——正如大家所想的那样。

【问题讨论】:

  • 错误不在您显示的代码中。
  • 您没有显示失败的代码。因为您显示的代码有效。因此,在提出问题时,请包含失败代码
  • 您能否从“控制台”选项卡而不是“问题”选项卡发布完整的错误消息,包括文件和行信息?
  • 您可能应该只检查std::to_string 函数,它并不完全如此,但会更有效。
  • 我们离这里越来越近了。由于导致问题的代码行未在此处显示,因此我们仍然缺少一些信息来帮助您。你能把int2str()的代码贴出来吗?

标签: c++ string int sstream


【解决方案1】:

提供了虚假信息; 没有正确定义标头函数,因为该函数返回的是 int 而不是 std::string。另外命名空间:在其实现中函数int2str 前面没有myClass::。

【讨论】:

    猜你喜欢
    • 2015-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-30
    • 1970-01-01
    • 1970-01-01
    • 2012-05-13
    相关资源
    最近更新 更多