总结文件操作函数(一)-C语言

在进程一开始运行,就自动打开了三个对应设备的文件,它们是标准输入、输出、错误流,分别用全局文件指针stdin、stdout、stderr表示,对应的文件描述符为0,1,2;stdin具有可读属性,缺省情况下是指从键盘的读取输入,stdout和stderr具有可写属性,缺省情况下是指向屏幕输出数据。

将文件路径转化为文件指针:

#include <stdio.h>  //头文件包含

FILE *fopen(const char *pach,const char *mode);  //文件名  模式

int fclose(FILE *stream);

fopen以mode的方式打开或创建文件,如果成功,将返回一个文件指针,失败则返回NULL.

fopen创建的文件的访问权限将以0666与当前的umask结合来确定。

在Linux系统中,mode里面的’b’(二进制)可以去掉,但是为了保持与其他系统的兼容性,建议不要去掉。ab和a+b为追加模式,在此两种模式下,无论文件读写点定位到何处,在写数据时都将是在文件末尾添加,所以比较适合于多进程写同一个文件的情况下保证数据的完整性。一般使用r或者w模式。

将目录名转化为目录指针:

#include <sys/types.h>

#include <dirent.h>

DIR *opendir(const char *name); //打开一个目录,返回一个DIR类型的指针

struct dirent *readdir(DIR *dir); //读取目录的一项信息,并返回该项信息的结构体指针

void rewinddir(DIR *dir); //重新定位到目录文件的头部

int closedir(DIR *dir); //关闭目录文件

读取目录信息的步骤为:

用opendir函数打开目录;

使用readdir函数迭代读取目录的内容,如果已经读取到目录末尾,又想重新开始读,则可以使用rewinddir函数将文件指针重新定位到目录文件的起始位置;

用closedir函数关闭目录

opendir()用来打开参数name指定的目录,并返回DIR*形态的目录流,和文件操作函数open()类似,接下来对目录的读取和搜索都要使用此返回值。函数失败则返回NULL;

在字符串读取和写入的时候以及格式化输入输出时经常用到文件指针:

Char buf[1024];

char *fgets(char *s, int size, FILE *stream);

int fputs(const char *s, FILE *stream);

fgets和fputs从文件流stream中读写一行数据;当文件指针为stdin/stdout分别表示从标准输入流和输出流 输入和输出。此时类似于gets和puts函数

fgets可以指定目标缓冲区的大小,读取文件的时候size大于该行的字符总数加2(多出来的两个,一个保存文件本身的‘\n‘换行,一个保存字符串本身的结束标识‘\0‘),文件并不会继续读下去,仅仅只是这一行读取完,随后指向文件的指针会自动偏移至下一行。

此时buf[strlen(buf)-1]里存放的是‘\n‘

用char*则要用malloc分配内存。

fputs不会在行尾自动添加换行符,但是puts会在标准输出流中自动添加一换行符。

对二进制形式的按照块来读写:

函数原型:

size_t  fread(void  *buffer,size_t  size, size_t  count,  FILE   *fp);

size_t  fwrite(void  *buffer,size_t  size, size_t  count,  FILE   *fp);

功能:读/写数据块fread与fwrite 一般用于二进制文件的输入/输出

fread:从fp所指向的文件中读取count个块,每个块的长度为size个字节,存放到以buffer为首地址的内存中。其中buffer必须已经是由内存空间的。

fwrite:从以buffer为首地址的内存中读取count个块,每个块的长度为size个字节,写入到fp所指向的文件中。

返回值:成功,返回读/写的块数;出错或文件尾,返回0

说明:

buffer:   指向要输入/输出数据块的首地址的指针

size:   读/写的数据块的大小(字节数)

count:   要读/写的数据块的个数

fp:     要读/写的文件指针

范例代码:
#include <stdio.h>
#include <stdlib.h>
typedef struct STUDENT
{
		char sNo[5];
		char sName[20];
		double score;
}STUDENT;
void main()
{    /* 操作一块 */
		STUDENT stu[3] = {{"0001", "赵军", 89},{"0002", "李千", 90},{"0003", "张芳", 100}
		};
		STUDENT stu2;
		FILE* fp = fopen("d:\\b.txt", "wb+");//写打开,转化为文件指针
		if(NULL == fp)
		{
			printf("Can not open this file!\n");
			exit(0);
		}
		fwrite(stu, sizeof(STUDENT), sizeof(stu)/sizeof(STUDENT), fp);
		rewind(fp);	/* 文件指针重新回到头 */
		fseek(fp, sizeof(STUDENT), SEEK_SET); /* 定位,此处跳过一条记录 */
		fread(&stu2, sizeof(STUDENT), 1, fp); /* 从文件中读取指定大小的块 */
		printf("%s-->%s-->%lf\n", stu2.sNo, stu2.sName, stu2.score);
		fclose(fp);
}

总结文件操作函数(一)-C语言

时间: 2024-10-21 19:21:51

总结文件操作函数(一)-C语言的相关文章

C语言文件操作函数的编写

 编写文件操作的头文件 /************************************************************************** Copyright(C)    :2014-08-5 toto Filename       :file.h Author          :涂作权 Version         :V1.1 Date            :2014-08-05 Description     :文件操作的头文件 Others  

总结文件操作函数(二)-C语言

格式化读写: #include <stdio.h> int printf(const char *format, ...);                   //相当于fprintf(stdout,format,-); int scanf(const char *format, -); int fprintf(FILE *stream, const char *format, ...);      //中间的参数为写入文件的格式 int fscanf(FILE *stream, const

c语言文件操作函数

c语言文件操作函数大全 fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态. mode有下列几种形态字符串: r 打开只读文件,该文件必须存在. r+ 打开可读写的文件,该文件必须存在. w 打开只写文件,若文件存在则文件长度清为0,即该文件

C语言样式的文件操作函数

使用C语言样式的文件操作函数,需要包含stdio.h头文件. 1.打开文件的函数: 1 //oflag的取值为“w”或“r”,分别表示以写或读的方式打开 2 FILE* fd = fopen(filename.c_str(), oflag); 2.写文件的函数原型: size_t fwrite(const void* buffer, size_t size, size_t count, FILE* stream ); 其中buffer是需要向文件中写入的内容在内存中的首地址指针,size是待写入

总结文件操作函数-目录(三)-C语言

获取.改变当前目录: 原型为: #include <unistd.h>   //头文件 char *getcwd(char *buf, size_t size); //获取当前目录,相当于pwd命令 int chdir(const char *path); //修改当前目录,即切换目录,相当于cd命令 其中getcwd()函数:将当前的工作目录绝对路径复制到参数buf所指的内存空间,参数size为buf的空间大小. 在调用此函数时,buf所指的内存空间要足够大,若工作目录绝对路径的字符串长度超

C语言文件操作函数大全(超详细)

C语言文件操作函数大全(超详细) 作者: 字体:[增加 减小] 类型:转载 本篇文章是对C语言中的文件操作函数进行了详细的总结分析,需要的朋友参考下 fopen(打开文件)相关函数 open,fclose表头文件 #include<stdio.h>定义函数 FILE * fopen(const char * path,const char * mode);函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态.mode有下列几种形态字符串:r 打开只读文件,

【阅读笔记】《C程序员 从校园到职场》第六章 常用文件操作函数 (Part 1)

参考链接:https://blog.csdn.net/zhouzhaoxiong1227/article/details/24926023 让你提前认识软件开发(18):C语言中常用的文件操作函数总结及使用方法演示代码 - CSDN博客 Contents: 1. C语言中常用的文件操作函数总结 (1) fopen   作用:打开文件 (2) fclose  作用:关闭文件 (3) fgetc   作用:由文件中读取一个字符. (4) fgets   作用:由文件中读取一字符串. (5) fflu

PHP5.4 文件操作函数 之 图片计数器的实例

1.访问文件或者文件夹相关函数 <?php echo filetype('c:\windows').'<br>'; ?> <?php echo filetype('c:\windows\regedit.exe').'<br>'; ?> <?php $arr=scandir("c:\\"); var_dump($arr); ?> <?php $arr=scandir("c:\\"); foreach($

PHP部分文件操作函数

1 (1)  fopen 打开文件函数  (R-只读 W-写入 A-读写) fopen (路径和文件名,打开方式) 2  fread 读取文件内容 (字节为单位) 3 (3)  filesize 读取文件大小,字节为计量单位 filesize (路径和文件名) 4 (4)  fwrite 写入文件内容 fwrite (路径和文件名,写入的内容) (5)  fclose 关闭打开的文件 fclose (路径和文件名) PHP部分文件操作函数,布布扣,bubuko.com