Notepad++编译和运行C语言 (GCC)
我们在学习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++编码方面的老司机有解决方案欢迎留言。
最新文章
- php 判断当前的操作系统的方法
- React 学习笔记(学习地址汇总)
- 读取 java.nio.ByteBuffer 中的字符串(String) 写入方式flash.utils.ByteArray.writeUTF
- 在SQL Server 2012中实现CDC for Oracle
- HDU 3076:ssworld VS DDD(概率DP)
- hive 存储格式
- css(display,float,position)
- java equals 心得体会
- 多个DLL合并,DLL合并到EXE
- CodeForces - 61E Enemy is weak
- CCIE路由实验(6) -- 组播Multicasting
- Linux Ubuntu从零开始部署web环境及项目-----搭建ssh环境(一)
- 《JAVA程序设计》_第四周学习总结
- Android串口屏(电阻,电容触摸),带AV输入,7寸LCD1(800*48...
- mysql的基础用法,水一下
- MQTT项目请求设置
- Unable to docker login through CLI - unauthorized: incorrect username or password
- 2018.4.27 java容器
- C#委托的介绍(delegate、Action、Func、predicate)ga
- 第7月第19天 swift on linux