尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

如何在c++编译器里写python代码~python转c++

如何在c++编译器里写python代码~python转c++
📅 发布时间:2026/7/31 9:17:36

如果你是一个想转行c++的python学者(。又或是一个喜欢恶搞的c++学者。),这篇文章可能是自你知道c++开始最令人震惊的东西。


看看这个吧

#include<iostream>#include<fstream>#include<cstdlib>intmain(){std::string py_code=R"(# -*- coding: gbk -*- print("这是Python代码,由C++调用") a = 100 + 200 print("计算结果:",a) )";std::ofstreamtmp("temp.py");tmp<<py_code;tmp.close();intret=std::system("py temp.py");returnret;}

想必无论你是学c++的还是学python的看到这个都有不少感触吧。

没错,你可以在c++编译器里写python代码。

#include<iostream>#include<fstream>#include<cstdlib>intmain(){std::string py_code=R"(# -*- coding: gbk -*- )";std::ofstreamtmp("temp.py");tmp<<py_code;tmp.close();intret=std::system("py temp.py");returnret;}

这是c++框架,然后你只要在

里面写python代码就能直接运行。
这个东西有时候很好用,比如

这道题,很明显,是一道高精度。
众所周知,c++写高精度极为麻烦

#include<iostream>#include<string>#include<cstring>usingnamespacestd;constintMAXN=505;// 最多500位,预留505防止进位多一位inta[MAXN],b[MAXN],ans[MAXN];string s1,s2;intlen1,len2,len_ans;intcarry;// 进位intmain(){// 1. 读取两个大数字字符串cin>>s1>>s2;len1=s1.size();len2=s2.size();// 2. 逆序存入数组:下标0是个位for(inti=0;i<len1;i++){a[i]=s1[len1-1-i]-'0';}for(inti=0;i<len2;i++){b[i]=s2[len2-1-i]-'0';}// 3. 逐位加法,循环到最长数字长度carry=0;len_ans=max(len1,len2);for(inti=0;i<len_ans;i++){intsum=a[i]+b[i]+carry;ans[i]=sum%10;carry=sum/10;}// 4. 处理最高位剩余进位if(carry!=0){ans[len_ans]=carry;len_ans++;}// 5. 逆序输出(从最高位打印到个位)for(inti=len_ans-1;i>=0;i--){cout<<ans[i];}cout<<endl;return0;}

但是python写这道题直接一行搞定

print(int(input())+int(input()))

于是我们可以把这个放进我们的框架里。即

#include<iostream>#include<fstream>#include<cstdlib>intmain(){std::string py_code=R"(# -*- coding: gbk -*- print(int(input()) + int(input())) )";std::ofstreamtmp("temp.py");tmp<<py_code;tmp.close();intret=std::system("py temp.py");returnret;}//哈哈,再也不会被学python的嘲笑啦

这可不是减少了一点点,万能框架一套,要写的其实也只有那一行。


接下来,我来讲一讲原理,这段代码其实是把python存入temp脚本,然后再启动 Python 解释器,运行刚刚生成的temp.py脚本。
所以运行完后,桌面上会多出一个 temp.py 。(可能要手动删除)

若运行发生错误,给出以下修复方案

1. 在程序最顶端加上

#include<string>

2. 若未安装python,见 python https://www.python.org/downloads/windows/ ,选择 3.10/3.11 稳定版,或者在应用商店安装。
3. 若程序依然无法运行,请检查python语法是否正确
4. 若仍运行出错,尝试将代码

intret=std::system("py temp.py");

改为

intret=std::system("python temp.py");

后再次运行。若程序显示

请立即改回

intret=std::system("py temp.py");

6.若还是不行,本人也无能为力了


希望本文能为大家带来启发。本文到这里就结束了。感谢大家的浏览,若有补充,请在评论区指出。

相关新闻

  • mac 电脑brew安装MySQL详解
  • 基于java+SpringBoot的高校评教系统的设计与实现(源码+lw+部署文档+讲解等)
  • 抖音收紧四类AI仿真人剧准入门槛,最受伤的是“量产型“团队

最新新闻

  • Raft如何做到线性一致性
  • 村镇微能网建设提速:如何通过数智化运营释放农村能源长期价值?
  • QQ空间数据备份完整教程:三步找回全部历史记录的终极指南
  • DHCP协议解析:设备如何零配置自动获取IP地址
  • 留学生的双线论文季:国内小论文和国外 essay 一起写是什么体验
  • Ouster激光雷达ROS驱动从零部署:网络配置、参数解析与数据验证全攻略

日新闻

  • 7步掌握KMS智能激活工具:Windows和Office永久激活完整方案
  • 如何在Windows上运行iOS应用:ipasim跨平台模拟器终极指南
  • 2026年重庆工伤赔偿律师口碑推荐:洪家木律师用专业赢得信赖 - 本地品牌推荐

周新闻

  • 大连理工大学与东京大学联手打造的“主动型AI助手“
  • 170.2026年国家级科研瓶颈:超精密单点金刚石切削(SPDT)光学表面生成
  • SongBloom:革命性歌曲生成框架深度解析——如何通过交织自回归与扩散模型创作完整音乐

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号