C语言文件操作精品文档
- 格式:ppt
- 大小:5.44 MB
- 文档页数:61
c语言file用法在C语言中,文件操作是编程中常见的一项任务。
使用文件,我们可以存储和读取数据,例如配置信息、日志数据等。
C语言提供了许多函数来处理文件,包括文件的打开、读取、写入和关闭等操作。
下面是一些关于如何在C语言中使用文件的例子。
首先,我们需要包含头文件`stdio.h`,它包含了文件操作的函数和宏定义。
```c#include <stdio.h>```1. 打开文件使用`fopen`函数打开一个文件。
这个函数需要两个参数:第一个参数是文件路径,第二个参数是打开文件的模式。
常见的模式有:`"r"`表示读取模式,`"w"`表示写入模式,如果文件不存在则创建,`"a"`表示追加模式,如果文件不存在则创建。
```cFILE *fp = fopen("file.txt", "r");if (fp == NULL) {printf("打开文件失败!\n");return 1;}```2. 读取文件使用`fscanf`函数从文件中读取数据。
这个函数的用法和`scanf`函数类似,只不过它是从文件中读取数据而不是从标准输入中读取。
```cchar buffer[100];while (fscanf(fp, "%s", buffer) != EOF) {printf("%s\n", buffer);}```3. 写入文件使用`fprintf`函数向文件中写入数据。
这个函数的用法和`printf`函数类似,只不过它是将数据写入到文件中而不是输出到标准输出中。
```cFILE *fp = fopen("file.txt", "w");if (fp == NULL) {printf("打开文件失败!\n");return 1;}fprintf(fp, "Hello, world!");fclose(fp);```4. 关闭文件使用`fclose`函数关闭一个文件。
C语言文件操作函数大全clearerr(清除文件流的错误旗标)相关函数 feof表头文件 #include<stdio.h>定义函数 void clearerr(FILE * stream);函数说明 clearerr()清除参数stream指定的文件流所使用的错误旗标。
返回值fclose(关闭文件)相关函数 close,fflush,fopen,setbuf表头文件 #include<stdio.h>定义函数 int fclose(FILE * stream);函数说明 fclose()用来关闭先前fopen()打开的文件。
此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。
返回值若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。
错误代码 EBADF表示参数stream非已打开的文件。
范例请参考fopen()。
fdopen(将文件描述词转为文件指针)相关函数 fopen,open,fclose表头文件 #include<stdio.h>定义函数 FILE * fdopen(int fildes,const char * mode);函数说明 fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。
参数mode 字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。
关于mode 字符串格式请参考fopen()。
返回值转换成功时返回指向该流的文件指针。
失败则返回NULL,并把错误代码存在errno中。
范例#include<stdio.h>main(){FILE * fp =fdopen(0,”w+”);fprintf(fp,”%s\n”,”hello!”);fclose(fp);}执行 hello!feof(检查文件流是否读到了文件尾)相关函数 fopen,fgetc,fgets,fread表头文件 #include<stdio.h>定义函数 int feof(FILE * stream);函数说明 feof()用来侦测是否读取到了文件尾,尾数stream为fopen()所返回之文件指针。
C语言文件操作完全攻略数据的输入和输出几乎伴随着每个C 语言程序,所谓输入就是从“源端”获取数据,所谓输出可以理解为向“终端”写入数据。
这里的源端可以是键盘、鼠标、硬盘、光盘、扫描仪等输入设备,终端可以是显示器、硬盘、打印机等输出设备。
在C 语言中,把这些输入和输出设备也看作“文件”。
文件及其分类计算机上的各种资源都是由操作系统管理和控制的,操作系统中的文件系统,是专门负责将外部存储设备中的信息组织方式进行统一管理规划,以便为程序访问数据提供统一的方式。
文件是操作系统管理数据的基本单位,文件一般是指存储在外部存储介质上的有名字的一系列相关数据的有序集合。
它是程序对数据进行读写操作的基本对象。
在C 语言中,把输入和输出设备都看作文件。
文件一般包括三要素:文件路径、文件名、后缀。
由于在C 语言中'\' 一般是转义字符的起始标志,故在路径中需要用两个'\' 表示路径中目录层次的间隔,也可以使用'/' 作为路径中的分隔符。
例如,"E:\\ch10.doc"或者"E:/ch10.doc",表示文件ch10.doc 保存在E 盘根目录下。
"f1.txt" 表示当前目录下的文件f1.txt。
文件路径:可以显式指出其绝对路径,如上面的”E:\\”或者”E:/”等;如果没有显式指出其路径,默认为当前路径。
C 语言不仅支持对当前目录和根目录文件的操作,也支持对多级目录文件的操作,例如:或者中的file_1.txt 均是C 语言可操作的多级目录文件。
文件名:标识文件名字的合法标识符,如ch10、file_1 等都是合法的文件名。
后缀:一般用于标明文件的类型,使用方式为:文件名.后缀,即文件名与后缀之间用'.' 隔开。
常见的后缀类型有:doc、txt、dat、c、cpp、obj、exe、bmp、jpg 等。
C语言多文件编程现在先写一个简单的程序.学过C语言的你都能看懂。
在DEV—C++下编辑下面的程序:[cpp] view plaincopyprint?1.#include〈stdio。
h〉2.#include〈stdlib.h>3.void func1();//函数声明4.void func2();//函数声明5.void func3();//函数声明6.int main()7.{8.printf("hello world!\n”);9.func1();10.func2();11.func3();12.system(”pause”);13.return 0;14.}1.//函数实现2.void func1()3.{4.printf("我是函数1\n”);5.}6.void func2()7.{8.printf("我是函数2\n");9.}10.v oid func3()11.{12.printf(”我是函数3\n”);13.}//函数实现void func1(){printf("我是函数1\n");}void func2()这个程序够简单吧!运行结果如下:这个程序所有的函数实现都在同一文件中,代码量很少,所以你能够看懂。
假如代码量很多时,你会发现这样的程序调试很费力。
为了体现C语言模块化的编程思想,我们可不可以将上面3个函数func1,func2和func3的实现单独放在一个文件中呢?答案是肯定的。
初级方案:3个函数的声明和实现放到一个文件中,再在main函数中调用.在DEV—C++中编辑一个.h文件(这里命名为myfile.h)并保存.(编辑完一定要保存哦!)[cpp] view plaincopyprint?1.//myfile。
h2.void func1()3.{4.printf(”我是函数1\n”);5.}6.void func2()7.{8.printf(”我是函数2\n");9.}10.v oid func3()11.{12.printf(”我是函数3\n");13.}再编辑我们的main。
最全的C#⽂件操作操作某⼀个⽂件/⽂件夹,需要⼀个⽂件的完整路径⼀、使⽤File的静态⽅法进⾏⽂件操作//使⽤file的静态⽅法进⾏复制File.Copy(path, destpath);//使⽤File的静态⽅法删除路径下的⼀个⽂件File.Delete(path);//使⽤File的静态⽅法移动路径下的⼀个⽂件File.Move(path, destpath);File.ReadAllText(path); //打开⼀个⽂本⽂件*.txt ,读取⽂件中数据,然后关闭该⽂件//写⼊File.WriteAllText(path, "要写⼊⽂件的字符串"); //创建⼀个⽂件,向其中写⼊数据,如果此路径下有同名⽂件则会覆PS:对⽂件进⾏写⼊操作,如果路径下有同名⽂件则会进⾏覆盖,所以最好进⾏⼀次判断,跟⽤户交互⼀下在进⾏覆盖⼆、实例化FileInfo进⾏操作FileInfo myfile = new FileInfo(path); //声明⼀个对象对某⼀个⽂件进⾏操作myfile.CopyTo(destpath); //对⽂件进⾏复制操作,复制路径为destpathmyfile.MoveTo(destpath); //进⾏移动操作myfile.Delete(); //进⾏删除操作获得某⼀⽂件或⽂件夹的详细信息(创建⽇期,最后⼀次修改⽇期等等)获取⼀个⽂件,或者⽂件夹的详细信息。
(创建⽇期,⽂件名等)FileInfo myfile = new FileInfo(path); //声明⼀个对象对某⼀个⽂件进⾏操作DateTime dt = myfile.CreationTime; //获取或设置⽂件/⽂件夹的创建⽇期string filepath = myfile.DirectoryName; //仅能⽤于FileInfo,获得完整的路径名,路径+⽂件名bool file = myfile.Exists; //此属性的值表⽰⽂件或⽂件夹是否存在,存在会返回Truestring fullname = myfile.FullName; //获取⽂件或⽂件夹的完整路径名DateTime lastTime = stAccessTime; //获取或设置最后⼀次访问⽂件或⽂件夹的时间DateTime lastWrite = stWriteTime; //获取或设置最后⼀次修改⽂件夹或⽂件夹的时间string name = ; //获取⽂件名,不能修改哦long length = myfile.Length; //返回⽂件的字节⼤⼩//CreationTime,LastAccessTime,LastWriteTime都是可以被修改的。