7.2 格式化输出——printf函数

printf sprintf

7.4 格式化输入——scanf函数

int scanf(char *format, ...)
int sscanf(char *string, char *format, arg1, arg2, ...)

arg1,arg2等参数必须是指针

7.5 文件访问

FILE *fopen(char *name, char *mode);
int fclose(FILE *fp);
FILE *freopen(const char *path, const char *mode, FILE *stream);

FILE *fp = fopen(name, "r"|"w"|"a");
int getc(FILE *fp); // 返回输入流中的下一个字符,文件尾或错误,返回EOF
int putc(int c, FILE *fp); //返回写入的字符,错误返回EOF

#define getchar() getc(stdin)
#define putchar() putc((c), stdout)

// 文件的格式化输入或输出
int fscanf(FILE *fp, char *format, ...)
int fprintf(FILE *fp, char *format, ...)

7.6 错误处理——stderr和exit

exit将终止调用程序的执行。任何调用该程序的进程都可以获取exit的参数值。返回值0表示一切正常,非0返回值通常表示出现恶劣异常。exit为每个已打开的输出文件调用fclose函数,已将缓冲区中的所有输出写到相应的文件中。

int ferror(FILE *fp) // 如果流fp中出现错误,则函数ferror返回一个非0值。
int feof(FILE *fp) // 如果到达文件结尾,返回一个非0值

7.7 行输入和行输出

char *fgets(char *line, int maxline, FILE *fp) // 返回line,遇到文件结尾或发生错误,则返回NULL
int fputs(char *line, FILE *fp) // 如果错误返回EOF,否则返回一个非负值

gets和puts的功能与fgets,fputs类似,它们针对stdin和stdout。gets函数在读取字符串时将删除结尾的`\n`,puts在写入字符串时将在结尾添加一个换行符。

7.8 其他函数

7.8.5 存储管理函数

void *malloc(size_t n) // 返回n字节长度的未初始化存储空间,否则返回NULL
void *calloc(size_t n, size_t size) // 返回n个长度为size的对象组成的数组,否则返回NULL,存储空间被初始化为0

free(p) // 释放一个不是通过malloc或calloc函数得到的指针所指向的存储空间,将是一个很严重的错误。

7.8.7 随机数发生器函数

rand() 生成0和RAND_MAX之间的伪随机整数序列
srand(unsigned)设置rand函数的种子数