|
需要用指针
C语言里有一个叫文件指针的东西。
声明一个文件指针变量可使用如下方式:
其中fp即文件指针的名字。
当然,只有一个文件指针是做不了任何事的,要用一个函数fopen打开文件,并将之关联到一个文件指针,如:
意即以可读写(r+)方式打开a.txt,并将之关联到fp(一个文件指针),如出现错误(如文件不存在),则fp为NULL。
更多对打开文件的读写控制(即fopen的第二个参数)可参考各大C语言书籍或网上搜索。
使用文件的目的当然是为了对文件进行读写,C标准库当然提供了这类函数。
读文本文件一般使用fscanf,用法和scanf几乎完全一样,只是需要在其他参数之前提供要读取文件的文件指针。同理fprintf(写入文本文件)用法与printf也类似,当然也需提供文件指针。
读写数据块(即一次性对一个结构体或数组进行二进制读写,简单的说也就是写入文件的东西只有程序本身看得懂),可以使用fread和fwrite(请务必配套使用这两个函数,即用fwrite写入的数据要用fread读),
例如:
- int array[10];
- fread (array,sizeof(int),10,fp) ;
复制代码
意即从fp所指的文件中读10个大小为sizeof(int)的数据(如果没有弄错文件的话,那么就是读10个int),并放入array中,
也就是说:
第一个参数是数据将要被读入的地址(指针),第二个是单个该种数据的占用的内存大小(一般用sizeof求得),第三个是读入数据的个数,第四个是个文件指针。
fwrite用法与freed类似,只是功能相反,再次强调,fwrite写入的数据要用fread读,用fscanf读取fwrite写入的数据,或用fread读取fprintf写入的数据,一般情况下都是行不通(会产生运行时错误)的。
使用完文件后,要用fclose关闭文件,如:
fp是一个文件指针。
另外,还有fseek等辅助读写文件的函数,请自行读书学习。 |
评分
-
查看全部评分
|