C语言必背100代码系列文章目录
核心内容:Hello World、条件判断、循环结构、数组基础、函数定义等。
核心内容:数组排序、字符串处理、多维数组、字符匹配、内存拷贝等。
核心内容:指针运算、动态内存分配、结构体指针、函数指针、内存泄漏检测等。
核心内容:阶乘递归、汉诺塔、分治算法、回溯算法、动态规划基础等。
核心内容:链表、栈、队列、二叉树、哈希表、图的基本操作。
核心内容:文本文件读写、二进制文件操作、日志管理、CSV/JSON解析等。
核心内容:快速幂、素数测试、进制转换、矩阵运算、蒙特卡洛模拟等。
核心内容:进程控制、线程同步、信号处理、套接字编程、系统调用封装等。
核心内容:TCP/UDP通信、HTTP请求、WebSocket、SSL/TLS加密、网络抓包等。
第四篇:递归与算法
想彻底掌握递归思维与核心算法?这篇硬核教程带你从零构建递归逻辑,破解经典算法难题!从阶乘到汉诺塔,从二分查找到快速排序,本文通过10个实战案例+动画级注释,深度解析递归三要素、栈溢出规避、时间复杂度优化等关键技术。每个案例直击痛点:目录遍历的递归陷阱、快速排序的分区策略、DFS迷宫求解……更有尾递归优化、迭代法转换等进阶方案。无论你是准备算法面试的求职者,还是想提升代码效率的开发者,这篇覆盖递归、搜索、排序等核心领域的干货合集,都能让你的算法功力实现质的飞跃!
1. 文本文件读写(fopen/fprintf/fscanf)
c
#include <stdio.h> |
|
int main() { |
|
// 写入文件 |
|
FILE *writeFile = fopen("data.txt", "w"); |
|
if (writeFile == NULL) { |
|
perror("Failed to open file for writing"); |
|
return 1; |
|
} |
|
fprintf(writeFile, "Name: Alice\nAge: 25\nScore: 95.5\n"); |
|
fclose(writeFile); |
|
// 读取文件 |
|
FILE *readFile = fopen("data.txt", "r"); |
|
if (readFile == NULL) { |
|
perror("Failed to open file for reading"); |
|
return 1; |
|
} |
|
char line[100]; |
|
printf("File content:\n"); |
|
while (fgets(line, sizeof(line), readFile) != NULL) { |
|
printf("%s", line); // 输出:Name: Alice... |
|
} |
|
fclose(readFile); |
|
return 0; |
|
} |
- 详细注释:
- "w":覆盖写入;"r":只读;"a":追加。
- fgets:逐行读取,避免缓冲区溢出。
- 应用场景:配置文件、日志记录。
- 常见问题:
- 文件未关闭导致数据丢失。
- 路径错误(建议使用绝对路径或检查返回值)。
2. 二进制文件读写(fwrite/fread)
c
#include <stdio.h> |
|
#include <string.h> |
|
typedef struct { |
|
char name[50]; |
|
int age; |
|
float score; |
|
} Student; |
|
int main() { |
|
Student stu = {"Bob", 20, 88.5}; |
|
// 写入二进制文件 |
|
FILE *binFile = fopen("student.bin", "wb"); |
|
if (binFile == NULL) { |
|
perror("Failed to open binary file"); |
|
return 1; |
|
} |
|
fwrite(&stu, sizeof(Student), 1, binFile); |
|
fclose(binFile); |
|
// 读取二进制文件 |
|
Student readStu; |
|
FILE *readBin = fopen("student.bin", "rb"); |
|
if (readBin == NULL) { |
|
perror("Failed to open binary file for reading"); |
|
return 1; |
|
} |
|