查看: 93|回复: 1

C语言文件操作

[复制链接]

2

主题

10

帖子

16

积分

新手上路

Rank: 1

积分
16
发表于 2022-12-22 19:57:33 | 显示全部楼层 |阅读模式
C语言中没有输入输出语句,所有的输入输出功能都用 ANSI C提供的一组标准库函数来实现。文件操作标准库函数有:「文件的打开操作」

  • fopen 打开一个文件
「文件的关闭操作」

  • fclose 关闭一个文件
「文件的读写操作」

  • fgetc 从文件中读取一个字符
  • fputc 写一个字符到文件中去
  • fgets 从文件中读取一个字符串
  • fputs 写一个字符串到文件中去
  • fprintf 往文件中写格式化数据
  • fscanf 格式化读取文件中数据
  • fread 以二进制形式读取文件中的数据
  • fwrite 以二进制形式写数据到文件中去
  • getw 以二进制形式读取一个整数
  • putw 以二进制形式存贮一个整数
「文件状态检查函数」

  • feof 文件结束
  • ferror 文件读/写出错
  • clearerr 清除文件错误标志
  • ftell 了解文件指针的当前位置
「文件定位函数」

  • rewind 反绕
  • fseek 随机定位
文件的打开

1、函数原型
FILE *fopen(char *pname,char *mode)2、功能说明    按照mode 规定的方式,打开由pname指定的文件。若找不到由pname指定的相应文件,就按以下方式之一处理:1) 此时如mode 规定按写方式打开文件,就按由pname指定的名字建立一个新文件;2) 此时如mode 规定按读方式打开文件,就会产生一个错误。打开文件的作用是:1)分配给打开文件一个FILE 类型的文件结构体变量,并将有关信息填入文件结构体变量;2)开辟一个缓冲区;3)调用操作系统提供的打开文件或建立新文件功能,打开或建立指定文件;FILE *:指出fopen是一个返回文件类型的指针函数;3、参数说明 pname:是一个字符指针,它将指向要打开或建立的文件的文件名字符串。mode:是一个指向文件处理方式字符串的字符指针。所有可能的文件处理方式见表8.14、返回值    正常返回:被打开文件的文件指针。   异常返回:NULL,表示打开操作不成功。例如:
//定义一个名叫fp文件指针
FILE *fp;
//判断按读方式打开一个名叫test的文件是否失败
if((fp=fopen("test","r")) == NULL)//打开操作不成功
{
    printf("The file can not be opened.\n");     
    exit(1);//结束程序的执行
}要说明的是:C语言将计算机的输入输出设备都看作是文件。例如,键盘文件、屏幕文件等。ANSI C标准规定,在执行程序时系统先自动打开键盘、屏幕、错误三个文件。这三个文件的文件指针分别是:标准输入stdin、标准输出stdout和标准出错 stderr。
文件的关闭

1. 函数原型
int fclose(FILE *fp);2. 功能说明   
关闭由fp指出的文件。
此时调用操作系统提供的文件关闭功能,关闭由fp->fd指出的文件;释放由fp指出的文件类型结构体变量;返回操作结果,即0或EOF。
3. 参数说明   fp:一个已打开文件的文件指针。
4. 返回值   正常返回:0。  
异常返回:EOF,表示文件在关闭时发生错误。例如:
int n=fclose(fp);文件的读写操作

A. 从文件中读取一个字符   1. 函数原型
int fgetc(FILE *fp);2、功能说明     从fp所指文件中读取一个字符。  
3、参数说明     fp:这是个文件指针,它指出要从中读取字符的文件。  
4、返回值     正常返回:返回读取字符的代码。   
 非正常返回:返回EOF。例如,要从"写打开"文件中读取一个字符时,会发生错误而返回一个EOF。  
5、实例
【例8.1】显示指定文件的内容。
//程序名为:display.c
//执行时可用:display filename1 形式的命令行运行。显示文件filename1中的内容。例如,执行命令行display display.c将在屏幕上显示display的原代码。

//File display program.
#include <stdio.h>
void main(int argc,char *argv[]) //命令行参数
{
    int ch;//定义文件类型指针
    FILE *fp;//判断命令行是否正确
    if(argc!=2)
    {
        printf("Error format,Usage: display filename1\n");
        return; //键入了错误的命令行,结束程序的执行
    }
    //按读方式打开由argv[1]指出的文件
    if((fp=fopen(argv[1],"r"))==NULL)
    {
        printf("The file <%s> can not be opened.\n",argv[1]);//打开操作不成功
        return;//结束程序的执行
    }
    //成功打开了argv[1]所指文件
    ch=fgetc(fp); //从fp所指文件的当前指针位置读取一个字符
    while(ch!=EOF) //判断刚读取的字符是否是文件结束符
    {
        putchar(ch); //若不是结束符,将它输出到屏幕上显示
        ch=fgetc(fp); //继续从fp所指文件中读取下一个字符
    } //完成将fp所指文件的内容输出到屏幕上显示
    fclose(fp); //关闭fp所指文件
}B. 写一个字符到文件中去
1、函数原型
int fputc(int ch,FILE *fp)2、功能说明   把ch中的字符写入由fp指出的文件中去。
3、参数说明   ch:是一个整型变量,内存要写到文件中的字符(C语言中整型量和字符量可以通用)。  fp:这是个文件指针,指出要在其中写入字符的文件。
4、返回值   正常返回:要写入字符的代码。  
非正常返回:返回EOF。例如,要往"读打开"文件中写一个字符时,会发生错误而返回一个EOF。
为了帮助大家,轻松,高效学习C语言/C++,给大家分享我收集的资源,从最零基础开始的,帮助大家在学习C语言的道路上披荆斩棘!点击上方即可获取,还可以一起来学习交流嗷
回复

使用道具 举报

1

主题

8

帖子

12

积分

新手上路

Rank: 1

积分
12
发表于 19 小时前 | 显示全部楼层
楼主呀,,,您太有才了。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表