丨远 2022-08-10 22:49 采纳率: 100%
浏览 86
已结题

VS2022使用atof函数时,写入访问权限冲突

我在用VSC++2022测试atof()函数
相关代码:
#include<iostream>
#include<string>
using namespace std;


int main()
{
    
    char* num= (char*)"4.56";
    cout << "请输入:" << endl;
    cin >>num;
    cout << "输出后:" << atof(num) << endl;
    system("pause");
    return 0;

}

img

请求帮忙解答一下!十分感激!

  • 写回答

3条回答 默认 最新

  • [PE]经典八炮 2022-08-11 07:11
    关注

    首先,你的第9行就体现了一个非常不好的习惯:强制去const属性。"4.56"本来是一个const char *,你直接赋值给char*肯定出错,所以你用了个强制类型转换,而强制类型转换也是很不好的习惯。然后你的代码为什么不对呢,是因为"4.56"是在常量区的一个字符串,无法修改,而你又有一个cin>>num,这相当于修改常量区的内容了,肯定报错。还有,我用的C++20标准,现在都把operator>>(char*)这个去掉了,就是为了防备不安全的情况。
    你明显是指针学得不扎实,好好复习下吧。

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

报告相同问题?

问题事件

  • 系统已结题 8月19日
  • 已采纳回答 8月11日
  • 创建了问题 8月10日

悬赏问题

  • ¥15 2020长安杯与连接网探
  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)