打开文件读取数据

Posted LC编程开发者

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打开文件读取数据相关的知识,希望对你有一定的参考价值。

3 文件的操作

       对文件的操作,必须调用fopen()函数打开文件,得到一个FILE*类型的文件指针,然后,调用fread()、fwrite()等函数对文件进行读写操作。操作完之后,需要调用fclose()函数关闭打开的文件。

       所以,调用fopen()函数打开文件,最后,调用fclose()函数关闭文件。

3.1 打开文件读取数据

       C语言提供了fopen()函数,用于打开一个文件,函数定义如下:

FILE* fopen(const char *path, const char *mode);

函数说明:打开 path 参数指向的文件。mode参数是文件打开的模式。根据该模式,以不同的方式打开文件。

返回值:成功返回指向打开文件的文件指针,否则,返回NULL。

       参数mode有不同的组合,可以对打开的文件进行不同的操作。该参数的取值如下:

"r" --- 打开一个用于读取的文本文件

"w" --- 创建一个用于写入的文本文件

"a" --- 附加(追加写入数据)到一个文本文件

"rb" --- 打开一个用于读取的二进制文件,字母b是binary表示二进制数据流英文的首字母。

"wb" --- 创建一个用于写入的二进制文件

"ab" --- 附加(追加写入数据)到一个二进制文件

"r+" --- 打开一个用于读/写的文本文件

"w+" --- 创建一个用于读/写的文本文件

"a+" --- 打开一个用于读/写的文本文件

"rt" --- 只读打开一个文本文件,只允许读数据

"wt" --- t(text): 文本文件,可省略不写,只写方式打开或建立一个文本文件,只允许写数据

"at" --- t(text): 文本文件,可省略不写,追加打开一个文本文件,并在文件末尾写数据

"rb" --- 只读打开一个二进制文件,只允许读数据

"wb" --- 只写打开或建立一个二进制文件,只允许写数据

"ab" --- 追加打开一个二进制文件,并在文件末尾写数据

"rt+" ---  t(text): 文本文件,可省略不写,读写打开一个文本文件,允许读和写

"wt+" --- t(text): 文本文件,可省略不写,读写打开或建立一个文本文件,允许读写

"at+" --- 读写打开一个文本文件,允许读,或在文件末追加数据

"rb+" --- 读写打开一个二进制文件,允许读和写

"wb+" --- 读写打开或建立一个二进制文件,允许读和写

"ab+" --- 读写打开一个二进制文件,允许读,或在文件末追加数据

       打开文件之后,可以调用fread()函数,读取文件数据,函数定义如下:

size_t fread ( void * ptr, size_t size, size_t count, FILE * stream );

函数说明:函数从stream文件指针指向的文件读取数据,把数据读取到ptr缓存中。读取size个数据块,每个数据块的容量是count个字节。所以,总共读取的字节数是size*count个字节。

返回值:返回成功读取到的数据块个数,注意,不是字节数,是参数size表示的数据块个数。

       文件操作完之后,调用fclose()关闭打开的文件。函数的定义如下:

int fclose(FILE *fp);

函数说明:关闭参数fp函数指针,该函数指针是fopen()打开文件所得。所以,打开文件之后,需要关闭该文件。

       下面我们编写一个程序,调用C语言提供的API函数,打开一个文件,然后从文件读取数据,最后关闭文件指针。

       首先,新建一个test.txt文件,往里面存放 "www.mylinux.vip" 字符串,操作如下:

echo "www.mylinux.vip" > test.txt

       就是调用echo命令,把"www.mylinux.vip"字符串输出到test.txt文件中。然后,用cat命令查看该文件的内容,操作如下:

       可以看到,test.txt文件存放了" www.mylinux.vip "字符串。那么,我们就编写程序,读

取test.txt文件中的数据。测试代码如下:

       程序运行结果如下:

       调用fopen()函数打开文件的时候,我们只是想对test.txt文件进行读取操作,所以,fopen()函数的第二个参数取值 "r" 字符串,表示进行 read 操作。那么,我们就可以调用fread()函数对打开的文件进行读取操作。通过fread()函数,正确读取到test.txt文件中存放的数据,把数据读取到buf[]缓存中。最后,调用fclose()关闭打开的文件指针。

韦凯峰 Linux C/C++ 程序设计教程,Linux 系统编程,Openwrt 系统开发,微信:13926572996,QQ:1523520001,博客:www.mylinux.vip

以上是关于打开文件读取数据的主要内容,如果未能解决你的问题,请参考以下文章

C语言如何读取文件?

由已打开的文件读取数据---read

C语言 读取文件时 除正常数据外 还有些乱码

打开文件读取数据

PHP如何读取大excel文件数据的方法

python中怎么读取文件内容