C/C++ - 控制台程序框架(C)

本文详细介绍了C语言项目的搭建过程,包括在VisualStudio中以管理员方式运行、创建新项目、注释方式、框架解析(如#include指令和头文件)、命名规则、输出格式(如printf和scanf函数使用),以及代码调试技巧,特别是如何使用断点进行调试。
摘要由CSDN通过智能技术生成

目录

项目搭建

注释方式

框架解析

命名规则

输出格式

代码调试


项目搭建

  • 管理员方式运行 Visual Studio

  • 创建新项目

  • 选择空项目

  • 设置项目名称

  • 指定工程路径

  • 添加源文件

    • 选中源文件

    • 右键添加新建项

    • 指定格式文件

  • 书写框架代码

    • #include <stdio.h>
      #include <stdlib.h>
      
      int main()
      {
      	printf("Hello 0xCC \n");
      
      	system("pause");
      	return 0;
      }
      
  • 调试运行程序

    • IDE 调试

    • 运行文件

注释方式

  • 注释作用 -> 方便他人或自己阅读代码

  • 注释语句 -> 不参与编译

  • 注释风格

    • 单行注释 //单行注释​​ 

    • 多行注释 /*多行注释*/​​

    • 示例代码

    • #include <stdio.h>
      #include <stdlib.h>
      
      /*
      	多
      	行
      	注
      	释
      */
      
      //控制台程序的入口函数
      int main()
      {
      	printf("Hello 0xCC /*输出吗?*/\n"/*输出吗?*/);
      
      	system("pause");
      	return 0;
      }
      

框架解析

  • #include

    • include​​​​​​ -> 包含/包括库文件 -> 预处理指令(preprocessor directive​​​​​​)

    • < >​​​​​​库文件 -> <stdio.h>​​​​​​

      • std -> standard -> 标准

      • i -> input -> 输入

      • o -> output -> 输出

      • h -> header -> 头文件

    • " "​​​​​​头文件

      • C 语言中使用对应库函数时需要包含与之相对应的头文件

      • ​printf ​​​​​​- stdio.h​​​​​​

      • system ​​​​​​- stblib.h​​​​​​

    • 常见头文件

      • 控制台程序 - stdio.h stdlib.h​​​​​​

      • WIN32 程序 - windows.h​​​​​​

      • 驱动程序 - ntifs.h​​​​​​

    • 常见样式

      • #include <xxx.h> //库文件 系统指定目录下查找对应内容
        #include "xxx.h" //头文件 首先在工程项目根目录下查找对应内容,如果未找到则在系统指定路径当中查找
        
  • main

    • 固定格式

    • 返回值 - int​​

    • 函数名 - main​​

      • int main()
        {
        	return 0;
        }
        
        /*
        	返回值(VOID) 函数名(main)(参数列表)
        	{
        		//TODO
        
        	}
        */
        
    • 参数列表 - ()​​

      • 00032042  mov         edx,dword ptr [ebp-4]     //参数3
        00032045  push        edx  
        00032046  mov         eax,dword ptr [ebp-8]     //参数2  
        00032049  push        eax  
        0003204A  mov         ecx,dword ptr [ebp-0Ch]   //参数1
        0003204D  push        ecx  
        0003204E  call        _main (0312D0h)           //函数调用
        00032053  add         esp,0Ch                   //堆栈平衡
        
    • 代码块 - {}​​

    • 程序的入口函数 - 有且只能有一个

      • 控制台程序 - main​​

      • GDI 程序 - Winmain​​

      • 驱动服务 - DriverEntry​​

  • printf

    • printf​ ​是 C 语言中的库函数 - 作用是向控制台窗口输出内容 - 对应头文件 stdio.h​​

    • 函数调用过程 - CALL - 函数名(参数列表);​​

    • printf​ ​使用规则

      • 输出内容必须放在 ""​​(英文格式下的双引号)

      • 输出内容 - "XXX"​​ - 字母/数字/符号/文字

      • 转义字符 - \n​​ - 换行符

      • 格式化输出 - %d​​

  • system

    • system​​ -> cmd​​

      • 开始菜单搜索 cmd

      • WIN + R -> cmd

    • 代码书写 -> system("指令字符串");​

    • 查询说明 -> 指令格式 + /?​​

    • cls​​ -> 清理控制台内容

    • calc ​​-> 运行计算器

    • pause ​​-> 请按任意键继续

    • color ​​-> 设置控制台颜色

    • notepad​​-> 运行记事本

  • return

    • main​ ​函数中执行到 return​ ​位置时意味着 main​ ​函数执行完毕

  • 语法规则

    • 预处理指令 - #include <xxx.h>​​

    • 函数定义 - Result Funname(Param...){}​​

    • 函数调用 - FunName(Param);​​

    • 可执行语句 - return 0;​​

    • 字符模式 - 英文模式​​

命名规则

  • 关键字

    • C/C++ 中预先保留的字符(标识符)

    • 定义变量-常量-函数等命名时避免使用关键字

    • asmdoifreturntypedef
      autodoubleinlineshorttypeid
      booldynamic_castintsignedtypename
      breakelselongsizeofunion
      caseenummutablestaticunsigned
      catchexplicitnamespacestatic_castusing
      charexportnewstructvirtual
      classexternoperatorswitchvoid
      constfalseprivatetemplatevolatile
      const_castfloatprotectedthiswchar_t
      continueforpublicthrowwhile
      defaultfriendregistertrue
      deletegotoreinterpret_casttry

输出格式

  • 转义字符

    • 请同学们使用 printf​ ​函数输出 "0xCC"​​

    • #include <stdio.h>
      #include <stdlib.h>
      
      int main()
      {
      	//转义字符
      	//" -> \"
      	printf("\"0xCC\" \n");
      
      	return 0;
      }
      
    • 退格 -> \b​​

    • 换行 -> \n​​

    • 回车 -> \r​​

    • 水平 -> \t​​

    • 斜杠 -> \\​​

    • 单引 -> \'​​

    • 双引 -> \"​​

    • 问号 -> \?​​

  • 数据输出

    • 函数格式 -> printf(”格式化字符串“, 待打印项1, 待打印项2, ...);​​

    • 格式化字符串是双引号内的内容

      • %c​​-> 单个字符

      • %s​​-> 字符串

      • %d​​-> 有符号十进制整数

      • %u​​-> 无符号十进制整数

      • %f​​-> 浮点数

      • %p​​-> 指针

    • 待打印项可以是 变量​​-常量​​-表达式​ ​等

    • 格式化字符串中的每一项必须与待打印项相匹配

    • printf 函数使用 % 来格式化字符串,如果要输出 % 则使用两个 %% 来代替

    • #include <stdio.h>
      #include <stdlib.h>
      
      int main()
      {
      	//"A"
      	printf("%c \n", 'A');
      	//"Hello 0xCC"
      	printf("%s \n", "Hello 0xCC");
      	//cat
      	printf("Name -> [%s] Age -> [%d] ", "0xCC", 18);
      	//变量
      	int Score = 99;
      	printf("Socre -> [%d] \n", Score);
      	printf("[%d] * [%d] = [%d] \n", 3, 9, 3 * 9);
      	printf("%%");
      
      	return 0;
      }
      
  • 数据输入

    • 函数格式 -> scanf("格式化字符串", 数据地址);​​

    • printf​ ​输出传入数据 - scanf​ ​接受传入数据

    • scanf 获取 基本变量类型​ ​的值时需要增加 &​​

    • scanf 获取 数组变量类型​ ​的值是不需增加 &​​

    • //#define _CRT_SECURE_NO_WARNINGS
      #include <stdio.h>
      #include <stdlib.h>
      
      int main()
      {
      	//定义变量
      	int Num1 = 0;
      
      	//输出信息
      	printf("请输入取款金额 -> ");
      
      	//接受输入
      	scanf_s("%d", &Num1);
      
      	//输出信息
      	printf("取款金额 -> [%d]  [%s] \n", Num1, "不好意思 您的余额为0取款失败");
      
      	return 0;
      }
      

代码调试

  • 断点方式

    • 选中当前下断代码单击 F9
  • 触发断点

    • 下断成功之后当程序运行至下断位置则自动触发
  • 调试监视

    • 当断点触发时,visual studio 顶部菜单栏调试 -> 窗口
    • 自动窗口
    • 局部变量
    • 监视窗口
    • 内存窗口
    • 寄存器窗口
    • 反汇编窗口
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值