- 博客(20)
- 收藏
- 关注
原创 C++多线程习题:非原创增加注释(01)
子线程循环 1 次,然后主线程循环 2 次;接着又回到子线程循环 1 次,完成后再回到主线程循环 2 次, 如此往复3次。
2024-11-04 11:16:35 131
原创 c++使用binstr_to_value将二进制字符串转换为指定类型数值
【代码】c++使用binstr_to_value将二进制字符串转换为指定类型数值。
2024-10-31 11:32:27 78
原创 navstr:一个简单的字符串数据解析实现
实现navstr的时候,我记得当时是为了帮下位机程序处理GPS文本信息。navstr的主要功能就是根据一些分割标记,从字符串中提取出一些数据来。测试程序 main.c。
2024-10-30 07:00:00 338
原创 用色彩提升信息的辨识度
系统提供了一些控制台相关的API,可以让我们对其进行个性化定制,比如设置窗口的大小,标题、文本属性等。如此一来,平台相关的细节被封装了起来,独立的模块,也使得复用更加简单,这就是我们提供console模块的动机。设置文本为灰白色(gray),此后你可以传递一个0-255间的数值,改变当前输出色,直到再次更改。现在只需根据删除文件的状态值,选择一个输出色,这微小的改动让我们的程序增色不少。最终结构上,由主函数驱动两个模块,ccleaner引用console模块,辅助完成内部实现。但是,从模块的角度讲,这是。
2024-10-23 21:59:03 16
原创 打磨成顺手的工具
对于控制台应用程序,通过命令行参数定制程序功能是不二之选。ccleaner的三个命令项都是可选的,根据规则下面的命令都是合法的。
2024-10-22 16:21:49 244
原创 有序删除:先文件后目录
ccleaner在删除上的逻辑是遇到什么删除什么。如果我们希望先删除文件,再是文件夹,这就需要先将文件夹名称缓存起来,这里是通过一个指针数组来表达。接下来我们可以通过strdup()函数,创建名称字符串副本,然后将它存储到subdirs中。strdup先使用malloc分配空间然后复制内容,所以要记得使用free释放。一切就绪后,我们通过遍历subdirs进行递归删除。我们看看用程序清理下面这种文件结构时的表现。现在,我们就可以得到一个整齐的输出了。
2024-10-21 14:28:57 349
原创 生成统计报告
但是我们并没有这么做,这样的设计使得struct cc_options必须被定义在cclenaer.h中,而我们的意图是隐藏具体的实现,也就是说我们不希望用户(使用ccleaner模块的其它模块)知道配置选项的细节,因此接口原型维持不变。对于程序的选项参数,这次我们使用struct把它们聚集起来,这与使用独立的全局变量进行存储本质上没什么区别,但从思想上讲,我们相当于对数据进行了抽象。改进的clear_core()函数增加了对计数信息的使用,这里需要理解的是递归前后的文件计数的含义。,用于追踪统计信息。
2024-10-20 15:48:11 12
原创 第一版面世
考虑到易用性,比如我们要删除指定目标下的所有文件,也支持传递"*.*",否则逐个输入要匹配的后缀,显然缺少了易用性。这两个参数都是属于配置程序行为,所以函数的名字含有config,其实我想说的是,为函数取一个确切的名称,能让代码更好理解。如果没有进行这样的物理划分,将所有的代码集中到一个.c文件中,在维护、复用方面都是不利的。这些选项参数随后被保存到全局变量中,供后续代码使用。在main.c中,我们实现main函数,它简单的使用接口,将整个流程驱动起来,现在我们配置的是删除当前debug目录下的所有文件。
2024-10-19 12:14:02 18
原创 遍历文件夹
为了遍历一个文件夹下的所有文件,我们可以配对使用系列函数。在Windows平台下,它们定义于,并由宏统一了不同平台下的名称差异性。这个宏根据当前编译环境的配置,映射到32位或64位的实现,比如在32位环境下,使用_findfirst实际调用的是_findfirst32的实现。findfirst函数的基础原型都是一个待查找的文件名和finddata指针。第一个参数为文件名,可以用"*.*“来匹配查找所有文件,也可以用”*.c"来查找反缀名为.c的文件。第二个参数是_finddata_t结构体指针。
2024-10-18 21:44:11 18
原创 ccleaner 项目介绍
在我编写教程的过程中,经常会创建项目编码测试,日积月累之下,由Visual Studio生成的中间文件也越来越多,于是便诞生了ccleaner这个想法:仅需双击,刷的一下(取决于文件的数量),这些文件便被清除了。与此同时,我也开始了这个系列的教程编写,这是一个简单但有趣的项目。简单,是因为它的核心就是删除文件,没有其它什么复杂的逻辑;有趣,是因为这是我们为自己编写的一个实用工具。作为初学者的入门项目,这个流程是合适的,所以这里我们从这个角度出发,对项目做一个简单梳理。开始阅读吧,希望你能喜欢。
2024-10-18 09:43:59 25
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人