雪傲天1 2023-04-03 14:26 采纳率: 96.2%
浏览 17
已结题

为什么我这段代码会出错呀

为什么我这段代码会出错呀


#include<iostream>
#include <string>
using std::string;

int main()
{
    std::string str;
    std::cin >> str;
    std::string temp = "用户的年龄是";
    std::cout << (temp + std::to_string(str));

    system("pause");
    return 0;
    
}

严重性 代码 说明 项目 文件 行 禁止显示状态
错误 C2665 “std::to_string”: 9 个重载中没有一个可以转换所有参数类型

  • 写回答

3条回答 默认 最新

  • OOoOOxty 2023-04-03 15:04
    关注

    上述代码的意图是输入一个字符串,然后将该字符串添加到"用户的年龄是"前面并输出。但是代码中使用了std::to_string()函数将std::string类型的字符串str转换为std::string类型,这是不正确的。

    如果你想要将字符串拼接在一起并输出,可以使用"+"运算符连接两个字符串。修改后的代码如下:

    #include <iostream>
    #include <string>
    
    int main()
    {
        std::string str;
        std::cin >> str;
        std::string temp = "用户的年龄是 ";
        std::cout << (temp + str); // 使用"+"运算符连接两个字符串
        system("pause");
        return 0;
    }
    

    另外,如果你需要在终端窗口暂停程序执行,可以使用std::cin.get()函数替代system("pause")。修改后的代码如下:

    #include <iostream>
    #include <string>
    
    int main()
    {
        std::string str;
        std::cin >> str;
        std::string temp = "用户的年龄是 ";
        std::cout << (temp + str); // 使用"+"运算符连接两个字符串
        std::cin.get(); // 等待用户按回车键继续执行
        return 0;
    }
    

    这样可以使代码更加简洁且跨平台性更好。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月11日
  • 已采纳回答 4月3日
  • 创建了问题 4月3日