在Windows下运行C语言程序

Windows下的编程工具使用 VC 6.0,下面讲解如何在VC 6.0下运行上节的“Hello, world”程序。

1) 新建Win32 Console Application工程

打开VC6.0,在菜单栏中选择“文件 -> 新建”,或者 Ctrl+N,弹出下面的对话框:

切换到“工程”选项卡,选择“Win32 Console Application”,填写工程名称和路径,点击“确定”,会弹出一个对话框询问类型,这里选择“一个空工程”,如下图所示:

点击“完成”跳转到下个页面点击“确定”完成创建。



“Win32 Console Application”是控制台应用程序,这样的程序类似 doc 或 cmd,没有漂亮的界面,可以显示字符。

2) 新建C源文件

在菜单栏中选择“文件 -> 新建”,或者 Ctrl+N,弹出下面的对话框:

切换到“文件”选项卡,选择“C++ Source File”,填写文件名,点击确定完成。



该步骤是向刚才创建的工程添加源文件;C语言源文件一般以 .c 为后缀。

3) 编写C语言代码

在工作空间中可以看到刚才创建的工程和源文件,入下图所示:

双击 hello.c,进入编辑界面,输入例1-1中的代码。

4) 编译并运行代码

C语言源代码,必要要经过编译、组建(也被称为“链接”)和运行才能看到输出结果:

  • 编译将C语言代码“翻译”成机器码(这里暂时可以理解成0和1序列)。
  • 组建将工程所需的所有资源集合到一起,最终生成 .exe文件。
  • 运行就是执行 .exe 程序,和运行其他程序一样,双击即可

编译、组建、运行的功能可以在“组建”中找到,如下图所示:

更加简单的方法是使用快捷方式,如下图所示:

对于初学者,最常用的是运行按钮,编写完代码,一次点击就可以看到输出结果。当然,你也可以使用快捷键:Ctrl+F7(编译)、F7(组建)、Ctrl+F5(运行)。



刚才我们已经编写了源代码,保存后,点击运行按钮或 Ctrl+F5,如果程序正确,可以看到运行结果,如下图所示:

恭喜你,你已经完成了第一个C语言程序,越过了第一道障碍。



注意:编译生成的 .exe 文件在工程目录下的Debug文件夹内。以上面的工程为例,路径为 E:\cDemo,打开看到有一个Debug文件夹,进入可以看到 cDemo.exe。

打开一个已经存在的工程,可以打开工程所在的文件位置,打开项目文件夹,双击.dsw的文件即可。





如果你在安装或使用过程中遇到错误,请查看VC6.0使用教程,已经解决了一些常见的问题。



在C-Free中运行C语言程序更加简单,无需创建工程,可以单独运行一个C源文件,这里不再赘述,方法与VC6.0类似。

------------------------------------------------- 我是分割线 --------------------------------------------------

*

int与float类型的取值范围取决于具体的机器:

int类型通常为16位,取值范围在-32768~+32768之间,也有32位表示的int类型;

float类型通常是32位,至少有6位有效数字,取值范围一般在10-38~10+38之间;

char  字符——一个字节

short  短整型

long  长整型

double  双精度浮点型

*

如果除法结果不想舍去小数点后的小数,如5/9的结果是0,但5.0/9.0的结果中小数不会被社区。

如果某个算术运算符的所有操作均为整型,则执行整形运算;

如果某个算术运算符有一个浮点型操作数和一个整形操作数,则在开始运算之前整形操作数将被转换为浮点型。

*

%d  按照十进制整形数打印

%6d  按照十进制整形数打印,至少6个字符宽

%f  按照浮点数打印

%6f  按照浮点数打印,至少6个字符宽

%.2f  按照浮点数打印,小数点后有2位小数

%6.2f  按照浮点数打印,至少6个字符宽,小数点后有2位小数

%o  表示八进制数

%x  十六进制数

%c  字符

%s  字符串

%%  表示百分号(%)本身

*

符号常量

#define 名字 替换文本

#include <stdio.h>

#define LOWER 0

#define UPPER 300

#define STEP 20

main(){

}

其中LOWER,UPPER,STEP都是符号常量,而非变量,因此不需要出现在声明中,main()中可以直接使用。

符号常量名通常用大写字母拼写(容易与小写字母拼写的变量名区分);

#define 指令行的末尾没有分号。

*

字符输入/输出

标准库提供的输入/输出模型,无论从文本何处输入,输出到何处,其输入/输出都是按照字符流的方式处理。

文本流是由多行字符构成的字符序列,而每行字符则由0个或多个字符组成,行末是一个换行符。

标准库提供了一次读/写一个字符的函数,其中最简单的是getchar和putchar两个函数。每次调用时,getchar函数从文本流中读入下一个输入字符,并将其作为结果值返回。

c=getchar()  执行后,变量c中将包含输入流中的下一个字符。这种字符通常是通过键盘输入的。

每次调用putchar函数时打印一个字符。

putchar(c)  将把整形变量c的内容以字符的形式打印出来,通常是显示在屏幕上。

*

C程序设计语言学习笔记的更多相关文章

  1. 2017-04-21周C语言学习笔记

    C语言学习笔记:... --------------------------------- C语言学习笔记:学习程度的高低取决于.自学能力的高低.有的时候生活就是这样的.聪明的人有时候需要.用笨的方法 ...

  2. 2017-05-4-C语言学习笔记

    C语言学习笔记... ------------------------------------ Hello C语言:什么是程序:程序是指:完成某件事的既定方式和过程.计算机中的程序是指:为了让计算机执 ...

  3. HTML语言学习笔记(会更新)

    # HTML语言学习笔记(会更新) 一个html文件是由一系列的元素和标签组成的. 标签: 1.<html></html> 表示该文件为超文本标记语言(HTML)编写的.成对出 ...

  4. GO语言学习笔记(一)

    GO语言学习笔记 1.数组切片slice:可动态增长的数组 2.错误处理流程关键字:defer panic recover 3.变量的初始化:以下效果一样 `var a int = 10` `var ...

  5. Haskell语言学习笔记(88)语言扩展(1)

    ExistentialQuantification {-# LANGUAGE ExistentialQuantification #-} 存在类型专用的语言扩展 Haskell语言学习笔记(73)Ex ...

  6. Go语言学习笔记十三: Map集合

    Go语言学习笔记十三: Map集合 Map在每种语言中基本都有,Java中是属于集合类Map,其包括HashMap, TreeMap等.而Python语言直接就属于一种类型,写法上比Java还简单. ...

  7. Go语言学习笔记十二: 范围(Range)

    Go语言学习笔记十二: 范围(Range) rang这个关键字主要用来遍历数组,切片,通道或Map.在数组和切片中返回索引值,在Map中返回key. 这个特别像python的方式.不过写法上比较怪异使 ...

  8. Go语言学习笔记十一: 切片(slice)

    Go语言学习笔记十一: 切片(slice) 切片这个概念我是从python语言中学到的,当时感觉这个东西真的比较好用.不像java语言写起来就比较繁琐.不过我觉得未来java语法也会支持的. 定义切片 ...

  9. Go语言学习笔记十: 结构体

    Go语言学习笔记十: 结构体 Go语言的结构体语法和C语言类似.而结构体这个概念就类似高级语言Java中的类. 结构体定义 结构体有两个关键字type和struct,中间夹着一个结构体名称.大括号里面 ...

随机推荐

  1. Entity Framework Extended Library

    扩展了实体框架的功能类库. https://github.com/loresoft/EntityFramework.Extended 1批量更新/删除 1)删除 //delete all users ...

  2. LINQ to SQL语句(6)之Group By/Having

    适用场景:分组数据,为我们查找数据缩小范围. 说明:分配并返回对传入参数进行分组操作后的可枚举对象.分组:延迟 1.简单形式: var q = from p in db.Products group ...

  3. C#中怎样实现序列化和反序列化

    我们想要将数据进行持久化的操作的话,也就是将数据写入到文件中,我们在C#中可以通过IO流来操作,同时也可以通过序列化来操作,本人是比较推荐使用序列化操作的 因为我们如果想要将一个对象持久化到文件中 如 ...

  4. The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory

    The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory 这是由于项目里面的一些 ...

  5. Json map

    1. 返回数据形式 Class returnMsg{ boolean success; String   msg; String   errorMsg; } 2.问题 当msg中的数据由对象 或 集合 ...

  6. CSS3之新UI方案

    border-radius 圆角 参数可为像素 也可为百分比 当一个参数时 作用范围为四个角 当两个参数时 作用范围为 左上右下 右上左下 当三个参数时 作用范围为 左上 右上左下 右下 当四个参数时 ...

  7. html5 canvas首屏自适应背景动画循环效果代码

    模板描述:html5 canvas首屏自适应背景动画循环效果代码 由于动态图太大,怕以后服务器受不了,所以现在都改为静态图了,大家点击演示地址一样的,希望大家喜欢,你们的支持就是小海的动力!! 欢迎大 ...

  8. iOS - UITableView中Cell重用机制导致Cell内容出错的解决办法

    "UITableView" iOS开发中重量级的控件之一;在日常开发中我们大多数会选择自定Cell来满足自己开发中的需求, 但是有些时候Cell也是可以不自定义的(比如某一个简单的 ...

  9. CentOS6.x生产环境下一键安装mono+jexus的脚本,自启动,带服务,版本号自控

    转自: http://linuxdot.net/bbsfile-3784 1.支持哪些个平台?答:暂时仅支持CentOS6.x平台,7.x未测试,欢迎测试并到群里反馈给我(昵称:无聊人士) 2.一键安 ...

  10. 萌新笔记——Cardinality Estimation算法学习(二)(Linear Counting算法、最大似然估计(MLE))

    在上篇,我了解了基数的基本概念,现在进入Linear Counting算法的学习. 理解颇浅,还请大神指点! http://blog.codinglabs.org/articles/algorithm ...