雪傲天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日

悬赏问题

  • ¥15 C++ yoloV5改写遇到的问题
  • ¥20 win11修改中文用户名路径
  • ¥15 win2012磁盘空间不足,c盘正常,d盘无法写入
  • ¥15 用土力学知识进行土坡稳定性分析与挡土墙设计
  • ¥70 PlayWright在Java上连接CDP关联本地Chrome启动失败,貌似是Windows端口转发问题
  • ¥15 帮我写一个c++工程
  • ¥30 Eclipse官网打不开,官网首页进不去,显示无法访问此页面,求解决方法
  • ¥15 关于smbclient 库的使用
  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?