1.1 第一个控制台应用程序实例
来源:互联网 发布:数据库学籍管理系统 编辑:程序博客网 时间:2024/06/14 04:52
Windows中的控制台程序类似于旧的DOS程序,只支持字符界面。虽然界面类似DOS程序,它和真正的DOS程序有着本质的区别,Windows下的控制台程序依然运行在Win32保护模式下,可以调用大多数的Window API,也可以使用线程等Windows对象。
1.1.1 技术要点:
- 每个控制台应用程序必须有一个名称为“main”的函数(UNICODE版本为wmain),并且这个函数必须是全局函数。系统加载程序后,会调用程序中的main函数。该函数也称为应用程序的“入口函数”。
- 当应用程序代码退出main函数后,整个应用程序结束。
main函数的原型如下:
main(int argc, char *argv[], char *envp[])
其中前两个参数指出启动程序时的命令行参数的个数和具体的命令行字符串,最后一个参数用于传递环境变量。在具体使用时,该函数的参数可以根据情况部分或全部省略。
1.1.2 实例步骤:
- 打开Visual C++ 6.0,单击“File”/“New”菜单,此时将弹出项目向导对话框。在对话框中选择项目类型为“Win32 Console Application”,在项目名称文本框中输入“HelloConsole”,单击“OK”/“确认”按钮进入下一步;
- 在接下来的对话框中,选择“An empty project”,以创建一个空项目。单击“Finish”按钮完成向导。此时将生成一个空的控制台应用程序项目,但此时该项目还没有任何代码,所以没有任何功能;
- 再次单击“File”/“New”菜单,此时弹出的对话框默认选择了“Files”标签页。在其中选择文件类型为“C++ Source File”,在“File”文本框中输入一个合适的文件名,本例中输入“main.cpp”,单击“OK”/“确认”按钮新建文件;
- 新建文件后,IDE自动打开了刚才新建的文件,现在向该文件键入如下所示源代码,以实现程序功能;
//引入必须的头文件#include <stdio.h>#include <stdlib.h>#include <conio.h>//应用程序入口int main(int argc, char* argv[]){ int nAddend = 0, nSummand = 0; //在控制台输出欢迎字符 printf("Hello Console!\n-----------\n"); //输入加数 char chTemp = 0; while(chTemp < '0' || chTemp > '9') { printf("请输入加数:\n"); chTemp = getch(); } printf("%c\n", chTemp); //得到加数 nAddend = chTemp - '0'; //输入被加数 chTemp = 0; while(chTemp < '0' || chTemp > '9') { printf("请输入被加数:\n"); chTemp = getch(); } printf("%c\n", chTemp); nSummand = chTemp - '0'; //输出计算结果 printf("计算结果为:\n%d + %d = %d\n", nAddend, nSummand, nAddend + nSummand); //暂停,直到任意键按下 system("pause"); //退出主函数,意味着应用程序结束 return 0;}
1.1.3 程序运行:
1.1.4 源程序解读:
- 通过实例可以看到,程序代码一旦退出main函数,应用程序即会结束,所以在实际应用中,大多数程序的main函数中都是一个循环,以持续完成需要的工作;
- 通过控制台输入或输出文本,除了本例中演示的函数外,另外还有cin、cout等函数可以完成类似功能,具体可以参照MSDN中的说明,本例中不再叙述;
阅读全文
1 0
- 1.1 第一个控制台应用程序实例
- 1.2 第一个Windows应用程序实例
- 第一个控制台程序
- [Hibernate]第一个hibernate应用程序实例【学习笔记】
- 《C#入门经典教程》笔记——(一)第一个控制台应用程序HelloWord
- 第一个C#应用程序
- (1)第一个应用程序
- 第一个struts2应用程序
- 第一个OPenmp应用程序
- 第一个应用程序
- android第一个应用程序
- 第一个Android应用程序
- 第一个Android应用程序
- 第一个Android应用程序
- 第一个 AJAX 应用程序
- 第一个Android应用程序
- 第一个windows8应用程序
- 第一个应用程序
- android studio实现高德地图api定位
- php正则表达式(基本概念整合)
- android 未root手机获取应用的sqlite数据库
- 【Android笔记】一些常用的代码
- Hdu 1176 免费馅饼 (动态规划)
- 1.1 第一个控制台应用程序实例
- 设计原则之旅(一):单一职责
- 0517
- 浏览器的兼容性问题
- Spark2.1.1中用各种模式运行计算圆周率的官方Demo
- ACM 第八届山东省赛 I Parity check SDUT 3901
- 45题埃及分数
- 大数乘方 求高精度幂 NOYJ155
- max-points-on-a-line