C/C++在线编译器

2023-11-07

     一直以来都喜欢用手机看书,尤其是在上班时。看的最多的是编程一类的书,主要是C++,看着就想写写代码,可是电脑用不能用,怎么办?于是想到用UC浏览器找找看网上有没有在线的编译器,想什么时候写代码都可以验证。于是就找了几个,各有千秋吧。中文的我没找到,全是英文的,不过英文不难,其实也不需要懂英文,只要知道在什么地方写代码,然后点击按钮进行在线编译就行了。好了,下面看介绍: 

1、http://codepad.org/ 

推荐星级:★★★★ 

是否需注册:否(注册的话也很快,几秒钟而已) 

优点:网页界面简洁,一目了然,适合手机浏览器。且支持C,C++,D,PHP,PYTHON,Perl,Ruby等十几种编程语言,非常强大。查看执行结果时,高亮显示代码。 

缺点:有时点击提交按钮后,给出一个出错页面,需多次提交才给出结果。另外不具有交互性,且不提供编译后的可执行文件。 

2、http://www.comeaucomputing.com/tryitout/ 

推荐星级:★★ 

是否注册:貌似不需要(网页上显示,注册后功能更多) 

优点:编译器的版本多 

缺点:页面文字较多,不适合手机浏览,且编译后显示结果不明了,反正我最简单的"Hello World"程序好像都通不过 

3、http://www.botskool.com/online-compiler(本人最喜欢的) 

推荐星级:★★★★☆ 

是否注册:需要(注册简单,绝对值得) 

优点:自动记录上一次所写代码,执行结果显示明显,并且可以进行简单的交互(我认为是亮点)。网站提供了交流论坛,编程学习资料。缺点:页面广告文字较多,不过手机浏览的话还可以接受。无论是编写代码还是查看结果,页面大面积是其他用户代码示例,显得页面臃肿。支持语言少,只有C,C++,Java三种。 

4、http://onlinecompiler.net/(现在不知道为什么打不开了,前几天还可以用,在这列出来先) 

推荐星级:★★★ 

优点:记不清了,只记得可以下载编译后的exe文件(这就是我列出来的原因) 

缺点:不记得了 

5、http://cmpe150-1.cmpe.boun.edu.tr/phpccompiler/login.php 

推荐星级:★★★ 

是否注册:否 

优点:编辑时有感应提示框,高亮显示语法,可下载编译后exe文件。界面简洁。 

缺点:只支持C语言。只支持IE6以上浏览器,其他浏览器一概不支持,手机无法浏览。不在线显示运行结果。没有出错提示。 

6、http://ideone.com 

推荐星级:★★★★★ 

是否注册:否(注册后功能更强大) 

优点:我见过的支持语言最多的,多达58种(哥惊呆了),编辑功能最强大的(显示行号,语法高亮,查找,定位到行,全屏显示,行信息,列信息显示),错误信息显示清晰,结果显示明显,有简单交互功能,可以上传源文件进行编译,并且可以下载exe文件,界面简洁更难能可贵。

 

---------------------------

原文:http://blogs.msdn.com/xiangfan/archive/2008/08/29/online-c-compilation-service.aspx

网上有许多在线C++编译器。你可以利用它们对你的代码针对各种C++编译器进行兼容性测试,而不需要购买和安装这些编译器。

下面的网址是最有名的两个在线C++编译网站:

许多在线判题系统也可以用来进行在线编译:

你可能会好奇这些网站使用的编译器的版本和编译参数到底是什么。有些网站会提供这些信息,而有些则不会。那么你就只能靠自己去发现这些“秘密”了。

工欲善其事,必先利其器。让我们先看看一些从编译器获取信息的小技巧。

1. 输出宏

在C++中, 字符串常数不能作为模板参数。大多数编译器会在错误信息中同时输出字符串的内容。下面的代码展示了这一技巧。 

template<const char *> class A {};
#define F0(x) #x
#define F1(x) F0(x)
#define V1 F1(__GNUC__)
int main()
{
    A<V1> a1;
}

这里,宏F0和F1用于将整型转换成字符串。编译器会输出类似于"literal "3" is not a valid template argument because it is the address of an object with static linkage"的出错信息。里面的"3"就是你想知道的宏的内容。

2. 输出常数

同样,浮点数是不能作为模板参数的。编译器通常会在错误信息中包含浮点数的值。利用这一点,我们可以输出浮点常数。不过很不幸的是,VC会隐式的将浮点类型的模板参数转换成int(参见https://connect.microsoft.com/VisualStudio/feedback/ViewFeedback.aspx?FeedbackID=296008

下面是一种输出整型常量的方法: 

template<int N>
class A
{
private:
    A();
};
int main()
{
    A<sizeof(char)> a;
}

3. 输出变量类型

有时候,你可能需要知道某些变量的实际类型,这时候你可以使用下面的代码: 

struct Dummy {};
void Fun(const Dummy &);
int main()
{
    Fun(1+1U);
}

PS:如果你使用的是gcc,那么它会输出"not convert `2' to `const Dummy&'",所以你需要将Fun的声明改成"template<typename T> void Fun(T);"(换句话说,在gcc中上面的代码也可以用于输出常数的值)

4. 输出包含路径

如果要获取STL头文件的路径,你可以使用: 

#include <ext/hash_set>
using __gnu_cxx::hash_set; 

int main()
{
    hash_set<> m;
}

PS:这里也可以使用vector。

好,现在是时候牛刀小试了。关于如何获取编译器的版本信息,可以参考这篇文章:Pre-defined Compiler Macros

下面是利用上面介绍的技巧获得的dinkumware网站的一些资料:

1. VC

版本 (_MSC_FULL_VER):
         VC8 140050727 
         VC7.1 13103077 
         VC7 13009466 
         VC6 12008804

包含路径: 
         D:\cplt501_vc_source\include (with _CPPLIB_VER=501)

2. EDG

版本(__EDG_VERSION__):
         3.05

编译参数:
         edgcc --alt -D_WIN32 -D_M_IX86 --no_inlining --diag_suppress=1290 --long_long --wchar_t_keyword -D_C99 -ID:\cplt501_gen_source/include/c -ID:\cplt501_gen_source/include -IC:\PROGRA~1\MICROS~2.NET\VC7/include --exceptions --microsoft -c sourceFile.cpp

因为使用了VC兼容模式进行编译,所以编译器可能会模拟VC的部分bug

3. GCC

版本:
         3.2.0

包含路径:
         D:/cplt501_gen_source/include and D:/Mingw/include/c++/3.2/

可以看到这里使用的GCC的版本已经相当陈旧了

 

-----------------------------

http://ganquan.info/g++-compiler/

 

转载于:https://www.cnblogs.com/shinerock/articles/2494735.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C/C++在线编译器 的相关文章

随机推荐

  • 谷粒商城详细笔记

    前言 mysql安装在腾讯云 redis安装在本地虚拟机master上 运行时 renren fast这个项目要到单独开个idea窗口打开 一 项目简介 1 项目微服务架构图 微服务 拒绝大型单体应用 基于业务边界进行服务微化拆分 各个服务
  • 浏览器如何使用断点调试?

    在浏览器中按下F12进入开发者模式 点击Sources gt 选中相应的html文件 gt 在对应的代码行前点击 出现小红点 断点 再次运行 在执行到断点时就会停下 等待按下F9 F12才会向下执行 F11执行下一步 F9 返回上一步 将鼠
  • python3安装Pillow(PIL)

    本方法亲测可用 我的是win7 32位 Python3 4 官网上还没有支持Python3的PIL 使用Pillow代替PIL 首先 下载对应的whl文件 来源http www lfd uci edu gohlke pythonlibs 4
  • n个数分为两组,两组数的个数尽可能相等,差值最小

    题目描述 对于有n个数的数组 分为两组 这两组的数的个数尽可能相等 不超过1 同时两组的数之和的差值最小 这个题目使用类似0 1背包问题 思路 从k个数中选i个数 求所有可能的和 并把这些和放在flag中用true表示 k i flag见代
  • ubuntu忘记root密码怎么办?

    普通用户 无论你是否申请了root帐号 或是普通账号密码忘记了都没有问题的 首先 重启ubuntu 随即长按shift进入grub菜单 其次 选择第二个高级模式recovery mode进入Recovery Menu界面 选择root Dr
  • jsp代码中EL表达式无法显示(已解决)

    jstl最近是不是有问题 还是我的代码有问题 每次遍历都不会出来 都是显示这样 有的说是必须要有jstl jar和 standard jar 但是我也有了 但是也是没有说打刀口上 其实是忽略了一个知识点 EL表达式 在这里加上 isELIg
  • CUnit 单元测试 方法总结

    CUnit是一个用C语言编写 管理和运行单元测试的轻量级系统 它为C程序员提供了基本的测试功能和灵活的各种用户接口 CUnit被构建为一个与用户的测试代码链接的静态库 它使用一个简单的框架来构建测试结构 并为测试常见数据类型提供了一套丰富的
  • Java 多线程 --- 终止线程 Terminate Threads

    Java 多线程 终止线程 Terminate Threads 为什么要终止线程 终止线程的方法 return stop interrupt InterruptedException 为什么要终止线程 线程消耗资源 包括内存 内核 CPU等
  • 非常详细的51单片机引脚介绍

    引用cy pp 的 非常详细的51单片机引脚介绍 T89C2051是精简版的51单片机 精简掉了P0口和P2口 只有20引脚 但其内部集成了一个很实用的模拟比较器 特别适合开发精简的51应用系统 毕竟很多时候我们开发简单的产品时用不了全部3
  • Qt编写控件属性设计器-用户属性

    一 前言 用户属性是后面新增加的一个功能 自定义控件如果采用的Q PROPERTY修饰的属性 会自动识别到属性栏中 这个一般称为控件属性 在组态设计软件中 光有控件本身的控件属性还是不够的 毕竟这些属性仅仅是以外观为主 并不能表示某个设备的
  • c#监测文件的类---FileSystemWatcher

    本文转载自 http blog csdn net jason ldh article details 9972801 FileSystemWatcher控件主要功能 监控指定文件或目录的文件的创建 删除 改动 重命名等活动 可以动态地定义需
  • 带头结点和尾节点的双向链表的(增删改查,头遍历,尾遍历)java实现

    废话不多说 请看代码 测试输出 代码 package com coderman dataStruct 双链表 Author zhangyukang Date 2020 2 18 19 00 Version 1 0 class DoubleL
  • PyTorch使用LMDB数据库加速文件读取

    PyTorch使用LMDB数据库加速文件读取 文章目录 PyTorch使用LMDB数据库加速文件读取 背景介绍 具体操作 LMDB主要类 lmdb Environment lmdb Transaction Imdb Cursor 操作流程
  • mybatisPlus-wrapper使用

    创建测试类 import com baomidou mybatisplus core conditions query QueryWrapper import com plus mybatis mapper UserMapper impor
  • 思科模拟器静态路由

    网络拓扑图 Router0配置 Router2配置 Multilayer Switch0配置 Switch0配置 Switch2配置 主机PC0配置 202 199 1 2 255 255 255 0 202 199 1 1 主机PC1配置
  • LDAP: error code 32 - No Such Object

    使用spring ldap创建节点的时候报错 LDAP error code 32 No Such Object 是在调用 this ldapTemplate create ldapUser 的时候报的错 找了半天没有发现原因 最后看到一篇
  • JavaScript整理

    第一章 JavaScript概述 1 1 JavaScript简介 JavaScript 简称js 是一种直译式脚本语言 是一种动态类型 弱类型 基于原型的语言 内置支持类型 它的解释器被称为JavaScript引擎 为浏览器的一部分 广泛
  • ajax请求和普通请求的区别

    当浏览器按照window location href index html 进行定期请求时 会清除当前窗口并将服务器响应加载到窗口中 使用ajax请求 当前窗口 文档不受影响 JavaScript代码可以检查请求的结果 并使用这些结果执行所
  • 一些黑科技接口钩子 钉钉,禅道,gitlab,jenkins等

    日常工作中需要做流程的串联 这个时候就需要掌握一些黑科技接口 这些接口甚至是官方文档上并没有提供的 但是我们确实可以使用 进行内部工具开发的一定要记得提供钩子 没有钩子 做不了朋友 钉钉相关 钉钉群中的自定义机器人 curl https o
  • C/C++在线编译器

    一直以来都喜欢用手机看书 尤其是在上班时 看的最多的是编程一类的书 主要是C 看着就想写写代码 可是电脑用不能用 怎么办 于是想到用UC浏览器找找看网上有没有在线的编译器 想什么时候写代码都可以验证 于是就找了几个 各有千秋吧 中文的我没找