C语言标准IO函数整理

342 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。 ​

目录

一、简介

二、常见的标准IO函数


一、简介

常见的IO函数分为两类,分别是标准IO和系统IO,具体的区别和联系为:

  • 不同系统的系统IO有区别,而标准IO是任何平台通用的;
  • 标准IO是依赖于系统调用IO实现的;
  • 标准IO吞吐量大,文件IO响应速度快;
  • 标准IO与文件IO不可混用。

二、常见的标准IO函数

FIFE *fopen(const char *path, const char *mode);
/*
path: 打开文件路径
mode: 打开文件模式
*/

int fclose(FIFE *stream)
// 关闭当前文件流

int fgetc(FIFE *stream)
// 读取一个字符,返回该字符转换为int类型的值

int fputc(int c, FIFE *stream);
// 把c转换为对应的字符,写到stream里

char *fgets(char *s, int size, FIFE *stream);
// 读到换行符或者EOF截止,结果保存到s中,会多保存一个'\0'

int fputs(const char *s, FIFE *stream);
// 把s除去'\0'之外的字符写到stream里

size_t fread(void *ptr, size_t size, size_t nmemb, FIFE *stream);
// 读nmemb个元素,每个大小size字节,保存到ptr里

size_t fwrite(const void *ptr, size_t size, size_t nmemb, FIFE *stream);
// 写nmemb个元素,每个大小size字节,写到stream里

// 文件位置指针相关:
int fseek(FIFE *stream, long offset, int whence)
long ftell(FIFE *stream)
void rewind(FIFE *stream)
int fflush(FIFE *stream)

// printf/scanf一族
int printf(const char *format);
int fprintf(FIFE *stream, const char *format, ...);
int sprintf(char *str, const  char *format, ...);   //可以看成是atoi的反向函数
//sprintf()可能会造成缓冲区溢出
int snprintf(char *str, size_t size, const char *format, ...);  

int scanf(const char *format, ...);\
int fscanf(FILE *stream, const char *format, ...);
int sscanf(const char *str, const char* format, ...);

  • fread()和fwrite()只适合去读写比较工整的字节块;
  • fseek()和ftell只能用于文件大小不超过2G的。