- 博客(44)
- 收藏
- 关注
原创 const关键字的用法
C++中const关键字用于定义不可修改的常量,可作用于变量、指针和函数。定义常量如const int MAX=100;指针用法分三种:指向常量(保护数据)、常量指针(保护地址)及两者组合。在函数中,const参数避免拷贝并保证不改参数,const成员函数承诺不改对象状态。constexpr用于编译期确定值的常量。记忆指针规则:const在左保数据,在右保指针。
2025-10-26 17:14:18
92
原创 Linux系统管理
如有些进程不能直接杀死,这时候我们需要加一个参数“-9”,“-9”代表强制结束。信号值从0到15,其中9为绝对终止,可以处理一般信号无法终止的进程。进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。如果,我们只是敲:ifconfig,它会显示所有的网卡的信息。kill命令指定进程号的进程,需要配合ps使用。使用格式:kill [-signal] pid。使用方法:ping [参数] 远程主机IP地址。
2025-10-24 21:26:28
263
原创 Linux用户、权限管理
注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root用户的登录和管理时间,提高了安全性。用户也可以直接使用该命令来修改自己的口令,而无需再命令后面使用用户名。su和su -命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录。格式:su [用户名]
2025-10-24 21:00:20
211
原创 Linux中的一些常见命令
tar使用格式:tar [参数] 打包文件名 文件 eg:tar zcvf xxx.tar.gz yyy1 yyy2 yyy3(zcvf是参数,xxx.tar.gz是打包文件名,tar.gz是后缀,后面三个是需要压缩的文件名)eg:mv outfile dir 如果目录下有outfile文件,则将dir文件移动到outfile文件下,如果不存在dir文件,则将outfile文件改名为dir。如ls >>test.txt,在不改变test.txt内容的情况下,将ls中的内容追加到test.txt的后面。
2025-10-24 20:10:44
321
原创 绝对路径和相对路径
eg:cd /user/include/ 三个“/”的意思分别为,第一个“/”是指从根目录开始,第二个“/”是目录分隔符,最后一个“/”指的是目录提示符,可以选择不加,意思是写的这一串为目录。2)如果不在当前目录下,则需要使用两个特殊目录“.”和“..”了。目录“.”指向当前目录,而目录“..”指向当前目录的前一级目录。1)绝对路径是从目录树的树根“/”目录开始往下直至到达文件所经过的所有节点目录。3)注意:绝对路径都是从“/”开始的,所以第一个字符一定是“/”。
2025-10-23 18:56:01
132
原创 Linux目录结构
本文介绍了Linux系统的主要目录结构及其功能。根目录(/)是Linux文件系统的起点,包含多个重要子目录:/bin存放可执行命令,/boot存放启动文件,/etc存放系统配置文件,/home是用户家目录,/lib存放系统函数库,/mnt用于设备挂载,/proc包含内存中的系统信息,/root是管理员家目录,/sbin存放管理员命令,/tmp存放临时文件,/usr存放应用程序,/var存放经常变化的文件如日志等。每个目录都有特定用途,共同构成了Linux系统的文件组织结构。
2025-10-23 18:37:21
370
原创 kbhith()和getch()函数详解
摘要:kbhit()和getch()是Windows平台下实现非阻塞键盘输入检测的组合函数。kbhit()非阻塞检测键盘缓冲区,返回是否有按键;getch()阻塞读取字符且不回显。典型用法是先用kbhit()检测再getch()读取,实现实时响应输入的同时执行其他任务,适用于游戏等需要即时交互的场景。示例展示了一个循环检测按键并打印ASCII码,按q退出的简单实现。这两个函数配合使用能有效解决阻塞式输入检测的问题。
2025-10-23 09:51:42
264
原创 SetConsoleCursorPosition函数的用法
摘要 SetConsoleCursorPosition是Windows API函数,用于设置控制台光标位置。需包含<windows.h>和<conio.h>头文件,通过COORD结构体指定坐标(X,Y),调用时需传入控制台输出句柄。函数成功返回非零值,失败返回零。典型应用包括控制台UI开发、游戏制作及动态显示控制。使用时需注意坐标范围、缓冲区大小及错误处理。示例代码演示了如何将光标定位到(20,3)并输出文本。
2025-10-21 21:29:12
386
原创 fgets和fscanf的区别
fgets与fscanf核心区别对比: 用途:fgets按行读取文本,fscanf按格式解析数据 安全性:fgets可指定缓冲区大小防止溢出,fscanf的%s可能溢出 处理:fgets保留换行符,fscanf跳过空白字符 返回值:fgets返回指针/NULL,fscanf返回匹配项数/EOF 场景:fgets适合日志/配置文件,fscanf适合结构化数据 fgets是安全的行读取器,会保留换行符;fscanf是格式化解析器,功能强大但需注意缓冲区溢出风险。
2025-10-14 14:43:51
269
原创 fgetc、fputc、fgets、fputs函数的用法
本文介绍了C语言中常用的文件操作函数:fgetc/fputc和fgets/fputs。fgetc从文件读取单个字符,返回int类型以区分EOF;fputc向文件写入单个字符。fgets按行读取字符串,保留换行符并自动添加\0;fputs写入字符串但不自动添加换行符。文中提供了两个完整示例:使用fgetc/fputc实现文件复制,以及使用fgets/fputs实现文件逐行处理。注意事项包括:正确处理返回值、缓冲区大小设置、换行符处理等。这些函数适合不同场景,fgetc/fputc适合精确字符控制,fgets/
2025-10-13 21:20:08
447
原创 feof函数的用法
【摘要】 feof()函数用于检测文件结束标志,而非预测文件结尾。其核心要点是:1)必须在读取操作后调用,检查是否因到达文件结尾而失败;2)不能直接作为循环条件,需先执行读取(如fgetc()),再通过feof()判断终止;3)典型用法是与读取操作配合,区分正常结束(feof返回非零)与读取错误(ferror)。示例代码演示了先读取后检查的正确流程,避免误用。关键结论:feof()反映历史操作状态,需结合读取函数返回值使用。 (字数:149)
2025-10-13 20:15:51
286
原创 文件指针和普通指针的区别
普通指针直接操作内存地址,指向程序数据;文件指针则是FILE结构体指针,封装了文件操作信息。两者本质不同:普通指针通过地址直接访问内存数据,需手动管理内存;文件指针通过标准库函数间接操作磁盘文件,系统自动管理资源。文件指针实际指向包含文件描述符、缓冲区等信息的结构体,而非文件本身,它提供了安全高效的文件I/O抽象层。虽然都称为"指针",但分别服务于内存管理和文件操作两个不同领域。
2025-10-13 18:43:46
269
原创 数组和指针的区别
摘要:数组是连续内存块的标识符,本质上是一个常量指针,其大小在编译时确定;指针是存储地址的变量,可灵活指向不同内存区域。关键区别:1) sizeof操作对数组返回总字节数,对指针返回地址变量大小;2) 数组不可整体赋值,指针可以;3) 数组名表示首元素地址常量,&数组名得到指向整个数组的指针。联系在于数组名在多数情况下会退化为指针,可用指针方式操作数组,但本质区别在于数组是内存块本身,指针仅存储地址。
2025-10-13 10:05:02
219
原创 static在C语言中的用法
在函数内部声明的局部变量,使用static修饰后,其生命周期会延长至整个程序运行期,但作用域仍然仅限于该函数内部。在全局变量或函数前加上static,会改变其链接属性,使其作用域仅限于定义它的源文件内部。②避免命名冲突:用于隐藏实现细节,避免与其他文件中的同名全局变量/函数发生冲突。在C语言中,static主要有以下用法,分别作用于局部变量、全局变量/函数。②保持值不变:函数调用结束后,变量不会被销毁,其值会保持到下一次函数调用。①内部链接:其他源文件无法使用extern来访问这个变量或函数。
2025-10-12 22:20:06
176
原创 字符串分割函数strtok的用法
/现在str 变为 “hello\0world\0test”:strtok是C语言中一个用于字符串分割的函数,它通过指定的分隔符来将字符串切分成多个字符串。后续调用:传入NULL,函数会记住上次的位置。第一次调用:传入要分割的字符串。
2025-10-12 21:44:16
184
原创 当数组做函数参数时
所以当整型数组做函数参数时,我们通常在函数定义中,封装两个参数。一个表数组首地址,一个表元素个数。传递的不再是整个数组,而是数组的首地址(一个指针)。
2025-10-11 18:15:09
212
原创 野指针、空指针、万能指针/泛型指针简介
野指针,也称为悬空指针,指的是指向一个无效内存地址的指针产生野指针的原因:1、指针未初始化int *p;// 指针p未初始化,其值是随机的垃圾值*p = 10;// 灾难!向一个未知的内存地址写入数据// 同样灾难!从一个未知的内存地址读取数据2、指针指向的内存被释放后,未置空*p = 5;free(p);// 内存被释放,p 现在变成了野指针// ... 后续可能有很多代码 ...*p = 10;// 灾难!内存已被释放,再次写入行为未定义// 灾难!再次读取行为未定义。
2025-10-10 19:48:32
370
原创 scanf、gets、fgets的区别
如果输入过长,它会覆盖str之后的内存,导致缓冲区溢出,这通常会导致程序崩溃,甚至可以被恶意利用在执行恶意代码。// 输入超过19个字符,例如:"This is a very long string..."stream:输入流,如标准输入(键盘)读取时,使用stdin,从文件读取时,使用fopen。会存储换行符:如果fgets是因为读到换行符而停止的,它会把这个换行符也存入字符串。③输入后的换行符会留在缓冲区,可能会影响后续的输入操作。// 此时 str 的内容是: "Hello\n\0"
2025-10-10 16:27:14
244
原创 对抗样本攻击的一些知识点
掩码扰动指的是在生成对抗样本时,并非对原始输入的所有部分都进行修改,而是有选择、有侧重地在特定区域添加微小的扰动。这里的“掩码”就像一个蒙版或一张指示图在哪里修改:哪些像素、区域或特征需要被改变。修改多少:在每个位置上的扰动强度应该是多大。而“扰动”就是实际要添加的、微小的、通常是肉眼难以察觉的修改值。概念解释掩码一个权重矩阵,像蒙版一样指定了扰动施加的位置和强度。扰动旨在误导模型的微小修改值。掩码扰动将扰动有选择地、稀疏地施加在输入上的技术。它不是“雨露均沾”,而是“重点打击”。目的。
2025-09-15 16:47:45
818
原创 摘要&加密算法——MD5
1.增加密码复杂度:通过向密码添加随机的盐值,可以大大增加密码的复杂度,使得相同的原始密码在加密后也会产生不同的哈希值,从而防止彩虹表攻击等破解手段的有效性。所以,MD5依然是国内非常多的互联网公司选择的密码摘要算法。2.防止单纯的碰撞攻击:盐值可以确保即使两个用户使用相同的密码,最终存储的哈希值也是不同的,从而防止碰撞攻击。这个随机数据可以是任意长度的,通常是一段随机生成的比特串,作为密码哈希过程中的附加输入。很明显两次加密的数据相同,但经过“加盐”后加密结果产生了变化,这样可以增加密码的安全程度。
2025-06-01 15:02:01
296
转载 requests库中response.text/content/json的区别
text属性返回响应内容的文本形式。它将根据响应的编程自动解码响应内容,并将其作为unicode字符串返回。你可以使用response.text来获取响应内容的文本形式。1.response.text():这种形式通常表示text()是一个方法,用于从响应对象中获取响应体的文本内容。在某些编程语言或框架中,你需要使用括号来调用方法。例如,在python的requests中,你可以使用response.text()来获取响应体的文本内容。
2025-05-29 20:20:59
163
原创 爬虫基础——Cookie
1.cookie的本质就是一组数据(键值对的形式存在)2.是由服务器创建,返回给客户端,最终会保存在客户端浏览器中3.如果客户端保存了cookie,则下次再次访问该服务器,就会携带cookie进行网络访问典型的案例:网站的免密登录。
2025-05-28 11:46:46
997
原创 爬虫基础——防盗链
二、案例:抓取微博图片,url:http://blog.sina.com.cn/lm/pic/,将页面中的某一组系列详情页的图片进行抓取保存,比如三里屯时尚女郎:https: // blog.sina.com.cn / s / blog_01ebcb8a0102zi2o.html?一旦检测来源不是网页所规定的,立即进行阻止或者返回指定的页面。1.在解析图片地址的时候,定位src的属性值,返回的内容和开发工具Element中看到的不一样,通过network查看网页源码发现需要解析real_src的值。
2025-05-28 10:56:24
715
原创 Python——可变与不可变
类型:int str float bool tuple。可变类型:里面的内容发生了改变,但是地址没有发生改变。类型:list dict set。不可变:当改变变量的值时,地址发生改变。
2024-04-19 10:13:03
209
原创 Python-4——可变参数args
一个简单的求和函数此时调用函数时传参只能传两个参数,如果要传入多个参数就会报错,此时可以将函数参数改为*args,就可以传入多个参数。
2024-04-18 16:30:25
228
原创 Python学习——列表的增删改查
2、remove(element):根据元素名称删除 如果删除的元素在列表中不存在则报错,list.remove(x) not in list。1、pop(index):根据下表删除列表中的元素,下标在写的时候要注意不能超出范围 index out of range。如果列表中存在多个同名元素element,只删除遇到的第一个元素,后面的元素不会删除。3、关键字in:元素 in 列表 表示元素是否在列表中 返回值:bool。删除:pop remove clear。
2024-04-15 11:09:20
365
1
原创 Java中String类的获取功能
5、String substring(int start,int end):从strart开始,到end结束截取字符串。3、int indexOf(String str):获取str在字符串对象中第一次出现的索引。4、String substring(int start):从start开始获取字符串。2、char charAt(int index):获取指定索引处的字符。1、int length():获取字符串的长度,其实也就是字符个数。
2024-01-10 11:32:43
531
2
原创 String类的判断功能
2、boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写。3、boolean startswith(String str):判断字符串对象是否以制定的str开头。4、boolean endsWith(String str):判断字符串对象是否以指定的str借结束。1、boolean equals(Object obj):比较字符串的内容是否相同。
2024-01-10 11:12:05
520
原创 在使用mybatis时遇到数据库连接不上的情况
### Error querying database. Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure的解决方法
2022-02-16 21:51:55
3173
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅