- C 标准库—— string.h
- C 标准库 —— time.h
- C 标准库 —— limits.h
- C 标准库 —— stdio.h
- C 标准库—— stdlib.h(包括 rand srand 的实现)
- C 标准库——<cmath>/<math.h>
- C 标准库—— assert.h
1. 类型及宏定义
-
NULL
#ifndef NULL #ifdef __cplusplus #define NULL 0 #else /* __cplusplus */ #define NULL ((void *)0) #endif /* __cplusplus */ #endif /* NULL */
2. io 处理
-
不安全的 gets 函数(未对输入的字符数进行限制)
// 输入参数是目标数组 char *gets(char* dst) { int c = getchar(); // 从控制台读入一个字符 char *p = dst; while (c != EOF || c != '\n') { *p++ = c; // 问题便出在这里,只要输入不结束,指针就会一直遍历赋值下去 c = getchar(); } *p = '\0'; return dst; }
-
fputs
f
表示 file(FILE*,准确地说 ),向文件流中写东西;
功能上接近于 C++ 流中的输出文件流,也即 <fstream> 文件,标准命名空间中的std::ofstream
。int fput(const char*, FILE* );
FILE* fp = fopen("./1.txt", "w+"); fputs("hello", fp); // 将1.txt文件的内容清空 // 写入 hello
如上文所描,stdin、stdout、stderr 的本质都是 FILE* 类型,故均可作为
fputs
的第二个参数。