cpp:cplusplus

putchar('a');// 输出一个字符

printf格式化输出函数,f就是format的缩写

puts(字符串); // 输出字符串并换行

getchar();// 输入一个字符

scanf格式化输入函数

gets(); // 输入字符串

h是head的简称,C语言分为源文件和头文件,源文件一般包含代码,头文件一般包含一些定义、声明。

#include

#include

#include

void main() {

char name[30];

int age;

// 输出字符串

printf("请输入你的姓名:\n");

// 输入字符串时需要指定界限。#字符串的值就是它的首地址#

scanf_s("%s", name, 30);

// scanf_s("hehe%s", name, 30); // 此时需要完全匹配格式控制才能正确赋值,否则数据无效。如输入hehea则name为a

printf("请输入你的年龄:\n");

// 输入整数

scanf_s("%d", &age);

printf("你是:%s,年龄是:%d\n", name, age);

// 系统执行命令

system("ipconfig");

// 暂停

system("pause");

// 参数分别是0:代表系统弹出;消息内容;消息标题;对话框类型

MessageBoxA(0, "没有网络连接!", "错误", 1);

// 参数分别是0:代表系统启动;open:打开、print使用打印机打印文件;指令;

// 第4、5个参数默认值都为0;

// 最后一个参数0:隐藏窗口、1:正常、3:最大化、6:最小化

ShellExecuteA(0, "open", "calc", 0, 0, 1);

// 打开网页

ShellExecuteA(0, "open", "http://www.baidu.com", 0, 0, 1);

// 设置鼠标位置

SetCursorPos(200, 300);

// 单机鼠标左键

mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);

mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);

Sleep(1000);

// 杀进程

system("taskkill /f /im iexplore.exe");

int num = 9;

// 按照16进制打印num的内存地址

printf("%x", &num);

printf("the num's value is : %d", num);

system("pause");

}

include时如果引用的是系统自带的头文件则使用<>,如果引用的是自定义的头文件则使用""。

调试时可以加断点对值进行修改,开始调试后,再调试 -> 窗口 -> 内存 -> 内存1,根据打印的内存值查找内存,右键值可以编辑值即修改。

常量定义

#define PI 3.14

const float PI = 3.14;

define只是定义一种符号,在编译期间用于替换后面的值。

const定义的是一个固定不变的变量,不可以在代码中修改,但可以通过获取变量内存地址在外部修改其值。

数据类型:有符号数据越界会产生错误、无符号数据越界会溢出。

随机数:

#include

#include

#include

void main() {

// 定义时间类型的变量

time_t time1;

// time方法:获取时间并赋值给time1变量

unsigned int hehe = (unsigned int)time(&time1);

// %u是无符号整型

printf("num: %u\n", hehe);

// 随机数发生器

srand(hehe);

int num = rand() % 100;

printf("num: %d", num);

getchar(); // 等待用户输入字符

}

写动态链接库dll文件时,函数需要用_declspec(dllexport)声明,且需要把项目的配置类型由“应用程序(.exe)”修改为“动态库(.dll)”,编译后用DllInject.exe注入工具进行注入。

修改配置类型步骤:

项目右键 -> 属性 -> 常规 -> 配置类型

注入步骤:

打开注入工具 -> 选择动态链接库文件 -> 加载时执行函数(即要注入的函数名)

切记:写动态链接库文件时必须用.c文件后缀,.cpp文件注入时会提示“动态链接库文件未导出”的相关错误信息。

注入例子:

#include

#include

void haha() {

for (int i = 0; i < 5; i++) {

// 有start表示并行执行命令,没有start则是线性执行命令

system("start calc");

}

}

_declspec(dllexport) void heihei() {

haha();

}

整型数据类型:

int num = 123;

printf("%6d\n", num); // 限定长度

printf("%ld\n", a); // 输出长整形整数

printf("%06d\n", num); // 长度不足则前面补0

printf("%-6d\n", num); // 左对齐

printf("%-06d\n", num); // 左对齐时前面补0无效

输出结果:

123

123

000123

123

123

字符串截取例子:

char name[30] = "heihei";

printf("%.2s\n", name); // 从前面截取字符串

输出:

he

浮点数例子:

float pi = 3.14;

printf("%f\n", pi); // 整数部分全部输出,小数部分输出6位(四舍五入或补0满足小数位数)

printf("%.1f\n", pi); // 保留一位小数

输出:

3.140000

3.1

printf("%%"); // 输出: %

%o:以无符号的八进制形式输出整数

%x:以无符号的十六进制形式输出整数

%u:以无符号的十进制形式输出整数

%e:以标准指数形式输出单、双精度实数

%g:选用输出宽度较小的格式输出实数且不输出无意义的0,根据数值大小自动选择用f格式或e格式输出。

goto无条件转移语句

说明:“语句标号”必须是合法的标识符,不能用整数做标号。

作用:与if语句一起构成循环结构、从多层循环体的内层跳到指定位置等。

目前不推荐使用goto语句。

与if构成循环的例子:

int i = 0;

int count = 0;

ADD: if (i < 100) { // 这里的ADD就是语句标号

i++;

count += i;

goto ADD;

}

printf("sum=%d\n", count);

输出结果:

sum=5050从多层循环体中跳出的例子:

for (int i = 0; i < 9; i++) {

for (int j = 2; j < 9; j++) {

if (j == i) {

printf("i = %d, j = %d\n", i, j);

goto OVER;

}

}

printf("这里还有其他语句");

}

OVER: printf("game over\n");

输出结果:

这里还有其他语句

这里还有其他语句

i = 2, j = 2

game over 例子没什么实际意义,就是说明下goto语句可以跳出多层循环。

c语言字符串注入命令,C语言基础之输入输出、常量定义、随机数、动态链接库的注入、数据类型介绍、goto语句的使用...相关推荐

  1. c语言字符串文库总结,C语言字符串.ppt

    C语言字符串.ppt ACM程序设计,福州大学至诚学院 冯新,第四讲,字符串处理,常用函数介绍,复制,char* strcpy char *s1, const char *s2; 将字符串s2复制到s ...

  2. c语言 字符串切片重组,C语言实现分割字符串

    背景 遇到一个将字符串分割场景.以前从没有用c语言实现,都是使用python的split()函数,python处理起来很简单. split()方法语法: str.split(str="&qu ...

  3. c语言 字符串切片重组,c语言 字符串的拼接和分割实例

    1.字符串的拼接 使用c的函数char *strcat(char *str_des, char *str_sou); 将字符串str_sou接在字符串str_des后面(放在str_des的最后字符和 ...

  4. c语言字符串加减_C语言中指针的介绍

    C语言中指针的介绍 指针是C语言中广泛使用的一种数据类型. 运用指针编程是C语言最主要的风格之一.利用指针变量可以表示各种数据结构:能很方便地使用数组和字符串: 并能象汇编语言一样处理内存地址,从而编 ...

  5. c语言字符串递归例子,c语言函数递归(简单的递归例子c语言)

    若在main函数中调用hanoi(3,'A','B','c')运行结果 void move(char getone,char . 分成三组: (一), 目的:将1号和2号从A移到B 调用函数:hano ...

  6. c语言gcc运行命令,c语言在gcc中怎么运行程序?

    c语言在gcc运行程序的方法:1.将需要运行的代码保存在一个叫"cards.c"的文件中:2.命令提示符中输入"gcc cards.c -o cards"命令, ...

  7. c语言字符串怎么退位,C语言第五六次作业.ppt

    C语言作业解析 第四弹 原来真正变态的是这两作业哇 原本是做完第五次作业等大家数分期中考完以后给大家 结果直接出了第六次 就顺便做了 买一送一还包邮哦亲 虽然这两次作业比较难 理解起来困难无比 不过考 ...

  8. c语言 字符串 枚举类型,C语言入门 — 枚举类型

    1.C语言入门 - 枚举类型,枚举类型的关键字是enum, enum是用来定义一组整型数值,其实定义模型如下: enum { 常数名称1 = 0, //起始值取0,这里的值可以为0,正数,负数. 常数 ...

  9. c语言字符串强制类型转换,C语言学习九 —头文件强制类型转换错误处理

    预处理器 C 预处理器不是编译器的组成部分,但是它是编译过程中一个单独的步骤.简言之,C 预处理器只不过是一个文本替换工具而已,它们会指示编译器在实际编译之前完成所需的预处理.我们将把 C 预处理器( ...

  10. c语言 字符串 timu,这个C语言题目究竟谁该背锅?竟然是它。。。

    原标题:这个C语言题目究竟谁该背锅?竟然是它... 问题来源 各位,今天给大家带来一道有问题的C语言题目,初学者犯这种错误的可能性不小,大家来看一下这应该是谁的锅呢?问题代码如下: 1 代码分析 代码 ...

最新文章

  1. 【C语言】简单C编程题-同位相同的N项之和/标准输入花括号成对判断/行号行输出...
  2. 高速串行总线系列(2)高速串行总线技术总览
  3. 有关机械手臂控制中的两个重要输入参数
  4. Linux编译程序时加-I指定头文件位置
  5. 盘点那些让程序员目瞪口呆的奇葩Bug,最后一个什么梗
  6. RSA加密、解密、签名、校验签名
  7. Golang - Structs 包的使用
  8. u深度重装系统详细教程_如何重装系统 U深度U盘重装系统教程
  9. 化学反应的常微分方程求解(Python)
  10. 密码学算法——RSA
  11. 免费专业的linux web应用防火墙国内排名推荐
  12. C++通讯录管理系统
  13. 华为(huawei)园区网的常规部署配置示例
  14. 【Qcom Camera】微距eeprom调试
  15. 不看会后悔系列之好看又好用的样机模板推荐!
  16. 昨晚(2009-09-08),自己的第一个项目上线成功,踩个脚印
  17. Arduino Cloud 现已支持乐鑫 ESP32-S2、S3 和 C3
  18. LinuxTina动态调压调频配置与实现
  19. 思科模拟器:修改根交换机
  20. 智能名片是什么?智能名片哪三大优势?

热门文章

  1. iOS 程序打包,安装流程
  2. MySQL 数据库重装失败最后一步无法启动server的解决办法
  3. IT工作十年总结之2个COP对象
  4. 更“优秀”? 必须的!!
  5. 肯德基champs各个字母代表什么_百度知道
  6. 成大事必备9种能力.9种手段.9种心态
  7. 基于算符优先文法的逆波兰表达式及计算
  8. php隐藏json数据,PHP调用出json后出来的数目字 想隐藏掉 50份求高手帮忙下
  9. Mapper代理详解,Mapper代理的作用以及用法,结合之前写的mybatis框架讲解、mapper代理的好处
  10. workbench表头可以是中文_超简单:Python 5步去中国式报表表头