读写一行字符数据

Posted LC编程开发者

tags:

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

C语言提供了fgets()、fputs()函数对文件进行读写“一行”的数据,字符串以'\\n'字符换行,注意,所谓的“一行”数据,它的最后一个有效字符是’\\n’,表示换行符号。字符串的结束符,还是以’\\0’为结尾,表示字符串结束符。其中fgets()函数的定义如下:

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

函数说明:从stream函数指针所指向的文件中,读取size-1个字节到buf缓存,不是读取size个字节,因为,buf[ ]缓存的第size个字节存放字符串结束符,形成一个有效的字符串。

       当读取到换行符时,或者到达文件末尾时,结束文件的读取操作。

返回值:读取数据成功,返回存储数据的缓存地址,就是参数buf的地址。如果读取数据失败,返回NULL。例如,读取文件完,没有数据可以再读取,则返回NULL。

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

函数说明:把参数buf指针指向的字符串,写入到stream指向的文件。参数buf是一个字符串指针,必须指向一个合法的字符串。合法的字符串是以字符串结束符'\\0'结束,表示一个字符串的结尾。

返回值:写入数据成功,返回成功写入的字符个数。失败返回EOF标记。

       如下是一个程序测试例子:

       程序运行结果如下:

       可以看到,程序调用fputs()函数,往打开的test.txt文件写入数据。直接写入一个字符

串。然后,关闭文件,再重新打开文件。调用fgets()函数读取数据,读取数据的时候,遇到回车换行的字符'\\n',表示一行数据,那么,就返回读取到的一行数据。

       在实际的项目开发过程中,fgets()函数非常有用。例如,我们定义一个config.txt文件,里面存放一些系统的配置信息,文件的格式如下:

cat /etc/config.txt

sys_pwd=123456

ApCliAuthMode=WPA2PSK

ApCliEncrypType=AES

ApCliChannel=1

ApCliDefaultKeyID=1

       那么,文件的配置信息是一行一行数据,所以,可以用fgets()函数,快速读取出每一行系统配置信息。

以上是关于读写一行字符数据的主要内容,如果未能解决你的问题,请参考以下文章

C++文件读写操作逐字符读取文本和逐行读取文本

C 语言文件操作 ( 配置文件读写 | 读取配置文件 | 函数接口形参 | 读取配置文件的逐行遍历操作 | 读取一行文本 | 查找字符 | 删除字符串前后空格 )

JAVA 字节流和字符流度读写的区别

标准文件IO详解---读和写流

shell怎样随机读写遍历文件中指定分隔符的记录

C语言如何用fread()和fwrite()实现对文本文件的整行读写呢,文本文件中每一行的字符个数不一定相同