我们在学习C语言的时候,实际上只需要编译器和编辑器就能开搞了。(初学者过早接触IDE不利于理解程序构建的过程)

在看这篇文章的时候,假设你已经知道如何把GCC配置到环境变量,并且会在命令行/终端下使用gcc 编译C代码文件 并运行了。

关于notepad++

notepad++是款windows下优秀的编辑器。在windows环境下,装了notepad++和gcc就能愉快地开始C语言学习之旅了。

这里当然再废话一下,系统自带的notepad记事本当然也可以写C语言,不过因为记事本不带语法高亮以及行号显示,写个hello word自然是没有问题,但是等以后稍微写长一点的代码就会显得有些太不方便了。

我们还是说notepad++ 和gcc的环境下,我们写好了一个C语言代码,如下图:

写完代码以后,我们直接手动在windows命令提示符界面手动输入gcc命令编译自然是最原始的做法。等初学者这样手动编译了大约64个C语言文件以后,大概已经开始觉得每次都要gcc -o hello hello.c 未免有些无聊了。

程序员以重复劳动为耻。

所以我们继续,按照上图的菜单配置,我们打开菜单中的 运行,然后再弹出的窗口中,输入运行程序名,我们输入以下命令

cmd /k gcc "$(FULL_CURRENT_PATH)" -o "$(CURRENT_DIRECTORY)\$(NAME_PART).exe" &PAUSE &"$(CURRENT_DIRECTORY)\$(NAME_PART).exe" & PAUSE & EXIT

然后点击保存,再弹出的快捷键设置窗口中填写一个名称“GCC编译运行”,快捷键我选了F9

然后我们点运行,就会自动执行输入的那一段命令,简单说明一下命令的内容:

$(FULL_CURRENT_PATH) 是notepad++的自己的环境变量,表示当前编辑文件的完整路径。
$(CURRENT_DIRECTORY) 表示当前目录
$(NAME_PART) 表示当前编辑文件的名称,不含后缀
PAUSE 是cmd下等待任意键的提示
这命令的意思就是编译当前文件,输出并运行。
运行结果如下图:

结果出现了中文乱码。这时候我们需要设置一下字符编码转换,如下图:

选择 | 编码 | 转为 ANSI编码,此时右下角UTF-8会变成ANSI,然后我们保存,再按F9一键编译运行。

如下图

中文顺利地输出了。

然后你就以为大功告成了?把notepad++关了再打开看看。

什么鬼!我们美丽的汉字怎么变成这个样子了。右下角字符被自动变成 ISO 8859-7了。经过你一番努力尝试,在编码菜单中每个编码都试一下你还是没办法让美丽的汉字显示出来。

不要着急,我们用记事本打开这个文件中文还是可以正常显示的。

什么,你问我这个有什么解决方案?

我告诉你……要不咱们学习C语言的时候就不要printf 输出中文了,还是写英文吧,这样不用切换输入法也挺好是吧。我们写中文的注释是完全可以的,这样在notepad++的UTF-8编码的环境下关闭再打开是没问题的。

所以就是说无解咯。

如果你是notepad++编码方面的老司机有解决方案欢迎留言。

												

Notepad++编译和运行C语言 (GCC)的更多相关文章

  1. Notepad++编译和运行Java

    首先要让Notepad++编译和运行Java,前提是电脑里已经配置好了Java的环境(这里可以参考我博客里关于Java环境配置的那篇随笔). 在Notepad++上面的选项栏中找到 插件---> ...

  2. notepad++编译并运行java (自定义包)

    最近用Notepad++写汇编,感觉用起来挺顺手,于是想能不能也在这个优秀的编辑器下编写java并编译运行呢,因为每次启动eclipse都要挺长时间,而且eclipse实在太占内存了... 于是各种百 ...

  3. Ubuntu下怎么编译并运行C、C++和Pascal语言?

    很多同学在安装了Ubuntu的环境后,发现在Windows下的许多东西都打不开了,但是用网站上的在线IDE又不是很方便. 所以,ljn教你如何在Ubuntu下编译并运行C.C++和Pascal. 一. ...

  4. Notepad++如何编译、运行Java

    首先要让Notepad++编译和运行Java,前提是电脑里已经配置好了Java的环境(这里可以参考我博客里关于Java环境配置的那篇随笔). 在Notepad++上面的选项栏中找到 插件---> ...

  5. Notepad++-第一篇命令行语句执行之编译、运行Java

    1.让Notepad++编译和运行Java,在电脑上要已经配置好了Java的开发环境 2.在Notepad++上面的选项栏中找到 Plugins--->Plugin Admin 3.在Avail ...

  6. 使用Notepad++编译运行C/C++/Python程序

    对我来说,比较常用的是C/C++/Python. 使用Notepad++编译运行单个源文件的C/C++/Python,比使用复杂的IDE更加快捷. 想要让Notepad++能够做到编译运行C/C++/ ...

  7. Sublime Text 3 实现C语言代码的编译和运行

    Sublime Text 3 是一款优秀的代码编辑软件.界面简洁,轻巧快速,很受大家的欢迎. 最近开始用他来编辑数据结构的C语言代码,这就需要在新建编译系统.具体方法如下: 首先: 接下来是关键的一步 ...

  8. WebAssembly,可以作为任何编程语言的编译目标,使应用程序可以运行在浏览器或其它代理中——浏览器里运行其他语言的程序?

    Mozilla.谷歌.微软和苹果已经决定开发一种面向Web的二进制格式.该格式名为WebAssembly,可以作为任何编程语言的编译目标,使应用程序可以运行在浏览器或其它代理中. 几年前,我们在Inf ...

  9. 关于JAVA,特点,历史,编译式的语言&解释式的语言,什么是java?JDK?DOS?一次编译到处运行原理。

    1.java语言的特点: 简单的:面向对象的:跨平台(操作系统)的(一次编译,到处运行):高性能的: 2.类名的首字母大写,方法小写: 3.历史: java2(即java),为什么加个2呢?1998年 ...

随机推荐

  1. node概述

    1.什么是node:“一个搭建在Chrome JavaScript运行时 上的平台,用于构建高速.可伸缩的网络程序.Node.js采用的事件驱动.非阻塞I/O模型,使它 既轻量又高效,并成为构建运行在 ...

  2. VMware Workstation 14永久激活密钥

    VMware Workstation是一款功能强大的桌面虚拟计算机软件,简单来说就是最强的中文虚拟机了,可以在桌面上运行不同的操作系统 VMware workstation 14永久激活密钥 : CG ...

  3. mysql user表root 用户误删除解决方法

    1:停止mysql服务2:mysql安装目录下找到my.ini;2:找到以下片段[mysqld]4:另起一行加入并保存skip-grant-tables5:启动mysql服务6:登录mysql(无用户 ...

  4. 论文阅读(Lukas Neumann——【ICCV2017】Deep TextSpotter_An End-to-End Trainable Scene Text Localization and Recognition Framework)

    Lukas Neumann——[ICCV2017]Deep TextSpotter_An End-to-End Trainable Scene Text Localization and Recogn ...

  5. java中String字符串的==解析

    今天不知道怎么看了下string的==的问题,本身我觉得我这个水平去判断几个字符串相等还能出问题?呵呵,真的出了大问题,根本原因在于对java字节码的不了解. 首先,==运算符比较的是两个变量所指向的 ...

  6. ASP.NET页面之间传值的方式之Server.Transfer(个人整理)

    Server.Transfer 这个方法相比以前介绍的方法稍微复杂一点,但在页面间值传递中却是特别有用的,使用该方法你可以在另一个页面以对象属性的方式来存取显露的值,当然了,使用这种方法,你需要额外写 ...

  7. dedecms自定义模块流程

    dedecms的自定义模块   1.在dedecms主目录下创建一个模块目录 2.在模块目录下创建如下目录 1 2 3 4 5 6 7 8 9 10 网站根目录/     |-自定义模块        ...

  8. 【Alpha】Scrum Meeting 10

    目录 前言 任务分配 燃尽图 会议照片 签入记录 困难 前言 第10次会议于4月14日19:00在教一316召开. 交流确认了任务进度,对下一阶段任务进行分配.时长40min. 任务分配 姓名 当前阶 ...

  9. python实现单例模式的三种方式及相关知识解释

    python实现单例模式的三种方式及相关知识解释 模块模式 装饰器模式 父类重写new继承 单例模式作为最常用的设计模式,在面试中很可能遇到要求手写.从最近的学习python的经验而言,singlet ...

  10. javascript实现继承的三种方式

    一.原型链继承  function Parent(){} function Child(){} Child.prototype = new Parent(); 通过对象child的prototype属 ...