• mac进行acm(C/C++)编程


    在windows下我们往往使用CB(CodeBlocksks)进行acm的编程,不用建立工程,可以直接编译并运行,然后弹出黑框框,sublime也是这样,只要MinGW搞好就行

    在ubuntu下我也常常使用CB,虽然有时候会出现小问题,但是还是非常稳定的

    在mac os下就比较头疼,CB是远古版本了,而且在OSX下可能闪退,但是我们总不可能使用Xcode进行C/C++代码编写吧,比较麻烦

    先后配置了sublime和VSCode,最终还是选择了VSCode,比较简单好用

    去微软官网下载之后拖到应用程序打开,然后下载C/C++的MS插件,然后下载codeRun(因为task的体验不好,不能编译并运行)

    编译和运行其实就是一行命令行的事("g++ A.cpp -std=c++11 -o A && ./A),我们配置codeRun到这样,然后加入一些人性化操作

    这个就是setting.json,可以点击查看->命令面板->找到设置

        // 在终端中运行编译命令,否则我们无法与程序通过标准输入交互
        "code-runner.runInTerminal": true,
        // 运行代码之前清除之前的输出
        "code-runner.clearPreviousOutput": true,
        // 开启这个后在运行编译命令之前会自动 cd 至文件所在目录
        "code-runner.fileDirectoryAsCwd": true,
        // 这里只保留了 C 和 C++ 的编译命令,有需要其他语言的请自行添加
        "code-runner.executorMap": {
            "c": "gcc $fileName -o $fileNameWithoutExt && ./$fileNameWithoutExt",
            "cpp": "g++ $fileName -std=c++11 -o $fileNameWithoutExt && ./$fileNameWithoutExt",
        },
        // 运行代码后切换焦点至终端,方便直接输入测试数据
        "code-runner.preserveFocus": false,
        // 在运行代码之前保存文件
        "code-runner.saveFileBeforeRun": true,

    但是你会发现你可能没有一个正常的GCC编译器,如果有Xcode,那么将是clang,他不支持万能头文件,而且标准不太一样

    这时候可以通过Homebrew安装GCC

    如果没有安装Homebrew可以在终端执行这个指令,关于这个东西的介绍和使用可以到这里 https://brew.sh/index_zh-cn.html

    ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

    安装gcc也很简单

    brew install gcc

    安装好了只要改一下~/bash_profile就好了,加入如下几行,因为我是安装的9,至于你是多少请随机应变

    export PATH="/usr/local/Cellar/gcc/9.1.0/bin:$PATH"
    alias gcc='gcc-9'
    alias g++='g++-9'
    alias c++='c++-9'

    可以刷新下系统文件

    1 source ~/.bash_profile

    输入g++-9 -v(其实这个时候和g++ -v等效的)显示这一坨就说明你好了,你在命令行编译cpp文件就可以使用万能头文件了

    sing built-in specs.
    COLLECT_GCC=g++-9
    COLLECT_LTO_WRAPPER=/usr/local/Cellar/gcc/9.1.0/libexec/gcc/x86_64-apple-darwin18/9.1.0/lto-wrapper
    Target: x86_64-apple-darwin18
    Configured with: ../configure --build=x86_64-apple-darwin18 --prefix=/usr/local/Cellar/gcc/9.1.0 --libdir=/usr/local/Cellar/gcc/9.1.0/lib/gcc/9 --disable-nls --enable-checking=release --enable-languages=c,c++,objc,obj-c++,fortran --program-suffix=-9 --with-gmp=/usr/local/opt/gmp --with-mpfr=/usr/local/opt/mpfr --with-mpc=/usr/local/opt/libmpc --with-isl=/usr/local/opt/isl --with-system-zlib --with-pkgversion='Homebrew GCC 9.1.0' --with-bugurl=https://github.com/Homebrew/homebrew-core/issues --disable-multilib --with-native-system-header-dir=/usr/include --with-sysroot=/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
    Thread model: posix
    gcc version 9.1.0 (Homebrew GCC 9.1.0) 

    然后VSC右键或者快捷键直接运行,就可以get到酸爽了

     使用gdb进行调试

    方便的进行ifdef

    cd /usr/local/Cellar/gcc/9.2.0_3/include/c++/9.2.0/x86_64-apple-darwin19/bits

    然后修改stdc++.h
    加上

    #define bob
    #define LOG(FMT...) fprintf(stderr, FMT)

    然后我本机就可以开头

        #ifdef bob
        freopen("test.in","r",stdin);
        freopen("test.out","w",stdout);
        int nol_cl = clock();
        #endif

    结尾

        #ifdef bob
        LOG("Time: %dms
    ", int((clock() - nol_cl) / (double)CLOCKS_PER_SEC * 1000));
        #endif

    快捷键

    通用

    ⇧⌘P, F1 显示控制台

    ⌘P 快速打开,快速查找并进入文件

    ⇧⌘N 新建窗口(不是文件)

    ⌘W 关闭窗口

    基本编辑

    ⌘X 删除整行 (不需要选中)

    ⌘C 复制整行 (不需要选中)

    ⌥↓ / ⌥↑ 上下移动整行

    ⇧⌥↓ / ⇧⌥↑ 复制整行,并粘贴到此行的上面/下面

    ⇧⌘K 删除行

    ⌘Enter / ⇧⌘Enter 插入行

    ⇧⌘ 光标跳到对应的括号

    ⌘] / ⌘[ 缩进

    Home / End 跳到行首行尾

    ⌘↑ / ⌘↓ 跳到首行或尾行

    ⇧⌘[ / ⇧⌘] 折叠和展开区域(验证了一下,这个组合键是左右切换文件)

    ⌘K ⌘[ / ⌘K ⌘] 折叠或展开选中的区域

    ⌘K ⌘0 / ⌘K ⌘J 折叠或展开所有的区域

    ⌘K ⌘C 加注释

    ⌘K ⌘U 删除注释

    ⌘/ 删除或注释

    ⇧⌥A 给选中的代码添加或删除注释(/* */)

    ⌥Z 切换自动换行

    搜索和替换

    ⌘F 查找

    ⌥⌘F 替换

    ⌘G / ⇧⌘G 查找下一个或上一个

    ⌥Enter 选择所有的查找结果(不懂)

    ⌘D Add selection to next Find match

    ⌘K ⌘D Move last selection to next Find match

    导航栏

    ⌘T 展示所有符号(显示本文件中的所有函数)

    ⌃G 去到指定行

    ⌘P 快速打开文件

    ⇧⌘O 跳到某个函数

    ⇧⌘M 显示报错面板

    F8 / ⇧F8 跳到下一个/前一个错误或警告

    ⌃⇧Tab 导航所有打开的文件

    ⌃- / ⌃⇧- 最近查看的文件之间跳转

    ⌃⇧M 切换选项卡移动焦点(不懂)

    编辑器管理

    ⌘W 关闭编辑器

    ⌘K F 关闭文件夹

    ⌘ 拆分编辑器

    ⌘1 / ⌘2 / ⌘3 切换到第1,2,3个编辑器

    ⌘K ⌘← / ⌘K ⌘→ 切换编辑器组

    ⌘K ⇧⌘← / ⌘K ⇧⌘→ 编辑器左移右移

    ⌘K ← / ⌘K → 移动当前编辑器组

    文件管理

    ⌘N 新建文件

    ⌘O 打开文件

    ⌘S 保存

    ⇧⌘S 另存为

    ⌥⌘S 保存所有文件

    ⌘W 关闭

    ⌘K ⌘W 关闭所有文件

    ⇧⌘T 重新打开关闭掉的文件

    ⌘K Enter 保持打开

    ⌃Tab / ⌃⇧Tab 打开下一个或前一个文件

    ⌘K P 复制当前文件的路径(不好使啊)

    ⌘K R 在浏览器中显示当前文件

    ⌘K O 在新窗口中显示当前文件

  • 相关阅读:
    第五周作业
    1.一维数组:选择排序法、二分查找法; 2.二维数据:定义、引用、初始化,二维数组与矩阵。
    基础作业 本周没上课,但是请大家不要忘记学习。 本周请大家完成上周挑战作业的第一部分:给定一个整数数组(包含正负数),找到一个具有最大和的子数组,返回其最大的子数组的和。 例如:[1, -2, 3, 10, -4, 7, 2, -5]的最大子数组为[3, 10, -4, 7, 2] 输入: 请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。 输出 在不删除原有文件内容
    2019年春季学期第二周作业 基础作业 请在第一周作业的基础上,继续完成:找出给定的文件中数组的最大值及其对应的最小下标(下标从0开始)。并将最大值和对应的最小下标数值写入文件。 输入: 请建立以自己英文名字命名的txt文件,并输入数组元素数值,元素值之间用逗号分隔。 输出 在不删除原有文件内容的情况下,将最大值和对应的最小下标数值写入文件
    人生路上对我影响最大的三位老师
    秋季总结
    抓老鼠啊~亏了还是赚了?
    币值转换
    打印沙漏
    第十一周编程总结
  • 原文地址:https://www.cnblogs.com/BobHuang/p/11113806.html
Copyright © 2020-2023  润新知