栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

C语言标准I/O

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言标准I/O

C语言中的标准I/O C语言程序运行时会自动打开三个文件
  1. stdin //标准输入流
  2. stdout //标准输出流
  3. stderr //标准错误输出流
C语言的文件操作基于文件指针(FILE *)

用fopen创建一个文件指针
FILE *fopen(const char *path, const char *mode);
功能:创建一个文件指针
参数:
path : 文件路径 mode : 打开方式
返回值:返回一个文件指针
mode取值:
w :将文件长度截断为零,或者创建文本文件,用于写。流被定位于文件的开始。
w+ :打开文件,用于读写。如果文件不存在就创建它,否则将截断它。流被定位于文件的开始。
r :打开文本文件,用于读。流被定位于文件的开始。
r+ :打开文本文件,用于读写。流被定位于文件的开始。
a :打开文件,用于追加 (在文件尾写)。如果文件不存在就创建它。流被定位于文件的末尾。
a+ :打开文件,用于追加 (在文件尾写)。如果文件不存在就创建它。读文件的初始位置是文件的开始,但是输出总是被追加到文件的末尾。
总结 :带加号的都是可读可写,r只读不能创建文件,w只写并且会清空原有文件,a追加写入
r+可读可写,不能创建文件,读写流定位都在头,w+打开并清空文件,如果文件不存在则创建,读写流定位都在头
a+可读可写,文件不存在就创建文件,打开文件后写入流定位在末尾,读取流定位在头

// 以只读的方式打开文件
FILE *fp = fopen("./test.txt", "r"); 
对文件读取的方式 fgetc(按字符读取)
int fgetc(FILE *stream);
参数    stream:文件指针
功能    从流中读取下一个字符,并将其作为无符号char类型转换为整型
返回值  无符号char类型转换为整型返回, 在文件结束或错误结束时返回EOF
fgets(按行读取)
char *fgets(char *s, int size, FILE *stream);
参数    s:要填充的字符串首地址   size:要读取的字符个数    stream:文件指针
功能    从流中最多读入一个小于size的字符,并将它们存储到s所指向的缓冲区中。读在EOF或换行符之后停止。如果一个换行符被读取,它将被存储到缓冲区中。结束空字节('')存储在缓冲区的最后一个字符之后。
返回值  成功时返回s,错误时返回NULL,文件结束或者没有读到任何字符时返回NULL。
对文件的写入方式 fputc(按字符写入)
int fputc(int c, FILE *stream);
参数    c:要写入文件的字符   stream:文件指针
功能    将字符串s写入流,而不终止空字节('')。
返回值  无符号char类型的字符,转换为int返回; 如果出现错误,返回EOF。
fputs(按行写入)
int fputs(const char *s, FILE *stream);
参数    s:要写入的字符串     stream:文件指针
功能    无符号char类型字符,转换为int返回;如果出现错误,返回EOF。
返回值  成功时返回一个非负数,错误时返回EOF。
#include 
int main(int argc, char const *argv[]) { 
    // 以读写的方式打开一个空文件
    FILE *fp = fopen("./test.txt", "w+");
    //将字符h写入文件
    fputc('h', fp);
    //写入字符串
    fputs("ello wouldnnihao beijing", fp);
    //释放文件
    fclose(fp);
    
    fp = NULL;
    // 以只读的方式打开文件
    fp = fopen("./test.txt", "r");
    // 读取第一个字符
    char ch = fgetc(fp);
    // 读取第一行字符
    char s[20];
    fgets(s, sizeof(s), fp);
    printf("ch = %cns = %sn", ch, s);
    
}
输出错误信息函数perror
perror(const char *s);
参数为字符串
返回值为空
功能是打印错误信息
捕获错误代码errno 打印错误信息strerror
error是一个全局变量用于存储错误信息代码
char *strerror(int errnum);
功能    根据错误代码获取错误信息
返回值  返回错误信息的字符串
参数    错误代码
文件状态函数feof() ferror()
int feof(FILE *stream);
    功能:判断是否读取到文件末尾
    参数:
    stream:文件指针
    返回值:
    成功:非0,表示已经到文件末尾了
    失败:0,表示没有到文件末尾
int ferror(FILE *stream);
    功能:判断读函数是否执行失败
    参数:
        stream:文件指针
    返回值:
        成功:非0,读函数执行失败
        失败:0,读函数执行成功
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/276128.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号