C语言中常用的文件读写方法(二)

来源:互联网 发布:淘宝新店需要什么软件 编辑:程序博客网 时间:2024/05/20 05:25

本文介绍C语言中常用的文件读写方法: fputs 和 fgets

一、fputs

1. 函数格式:int fputs(char* str, FILE* fp);

2. 参数解释:

str是字符型指针,是待写入的字符串,它可以是字符串常量,或者存放字符串的数组首地址;

fp为文件指针,它是执行 fopen 打开文件函数获得的。

3. 函数功能:将字符串str写入到文件指针fp所指向的文件的当前写指针的位置(不自动生成字符串结束标记符'\0')。

4. 函数返回值:成功写入一个字符串后,文件内部的写指针位置会自动后移,函数返回一个非负整数;如果写入失败,则返回一个EOF(即-1)。EOF是在stdio.h文件中定义的符号常量,值为-1。

5. 源代码示例:
#include <stdio.h>#include <stdlib.h>#define FPUTS_TXT "fputs_txt"int main(){    FILE *fp;    char *str = "have a nice day!";    int ret = 0;    if (NULL == (fp = fopen(FPUTS_TXT, "w+"))) {printf("open file failed!\n");exit(0);    }    if (EOF == (ret = fputs(str, fp))) {printf("write file failed!\n");exit(0);    }    fclose(fp);    printf("ret is %d\n", ret);    return 0;}

说明:

1)文件“fputs_txt”是与上面源码文件处于同一目录下的文本文件;

2)上面代码的作用是将字符串 str 的内容写入到文本文件“fputs_txt”中,经过编译运行,证实上述代码可用。

二、fgets

1. 函数格式:char *fgets(char *buf, int bufsize, FILE* fp);

2. 参数解释:

buf 是字符型指针,指向用来存储从文件中读取数据的地址;

bufsize 是整形数据,表示要读取的字符个数;

fp为文件指针,它是执行 fopen 打开文件函数获得的。

3. 函数功能:从文件指针fp所指向的文件的一行中(以'\0'为标志)读取 bufsize-1 个字符(第bufsize个字符赋'\0'),并将读取的数据保存在 buf 所指向的字符数组中。
注意:如果在读取 bufsize-1 个字符之前遇到了换行符'\n',则读取操作结束,读取的总内容为:前面读取的内容和换行符'\n'。

4. 函数返回值:如果读取成功,fgets将返回buf;如果在执行fgets函数读字符时,遇到文件结束符或读取出错时,函数返回一个文件结束标志EOF(即-1)。

5. 源代码示例:

#include <stdio.h>#include <stdlib.h>#define FGETS_TXT "fgets_txt"int main(){    FILE *fp;    char str[30];    int n = 22;    if (NULL == (fp = fopen(FGETS_TXT, "r"))) {printf("open file failed!\n");exit(0);    }    if (NULL == fgets(str, n, fp)) {printf("read file failed!\n");exit(0);    }    fclose(fp);    printf("str is %s\n", str);    return 0;}

说明:

1)文件“fgets_txt”是与上面源码文件处于同一目录下的文本文件,此文件需要用户手动创建,并编辑文件内容;

2)上面代码的作用是从“fgets_txt”文件中读取21个字符的内容(第22个字符赋值为'\0'),并将读取的内容赋值给字符串 str,最后输出字符串 str 的内容,经过编译运行,证实上述代码可用;

3)如果在读取21个字符的过程中,遇到了换行符'\n',那么读取操作结束,字符串 str 的内容为“所读取的内容和换行符'\n'”。
原创粉丝点击