首页 > 编程笔记

C语言fputs()函数:以字符串形式写入文件

C语言 fputs() 函数将一个存放在内存变量中的字符串写到文本文件中。fputs() 函数位于 <stdio.h> 头文件中,其使用格式如下:

fputs(字符串,文件指针);

其中,“字符串”可以是一个字符串常量,也可以是一个字符数组名或指向字符串的指针。

功能:将“字符串”写到文件指针所指向的文件中,若写入成功,函数的返回值为 0;否则,返回一个非零值。

说明:向文件中写入的字符串中并不包含字符串结束标志符“\0”。

例如有以下语句:

char str[10]={"abc"};
fputs(str,fp);
char str[10]={"abc"};
fputs(str,fp);

上述语句含义是将字符数组中存放的字符串 “abc” 写入 fp 所指向的文件中,这里写入的是 3 个字符 a、b 和 c,并不包含字符串结束标志“\0”。

示例

应用 fgets() 函数和 fputs() 函数建立一个文本文件,读取文件中的内容并在屏幕上显示。代码如下:
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
int main()
{
    FILE *fp1,*fp2;                /*定义两个文件指针变量fp1,fp2*/
    char str[10];
    if((fp1=fopen("file2.txt","w"))==0) /*以只写方式新建文件file2.txt,并测试是否成功*/
    {
       printf("不能创建文件\n");
       exit(0);                    /*强制退出程序*/
    }
    printf("输入字符串(以空串作为结束输入):\n");
    gets(str);                    /*接收从键盘输入的字符串*/
    while(strlen(str)>0)
    {
        fputs(str,fp1);
        fputs("\n",fp1);            /*在文件中加入换行符作为字符串分隔符*/
        gets(str);
    }
    fclose(fp1);                    /*写文件结束,关闭文件*/
    if((fp2=fopen("file2.txt","r"))==0) /*以只读方式新建并打开文件file2.txt,测试是否成功*/
    {
        printf("不能打开文件\n");
        exit(0);
    }
    printf("输出字符串:\n");
    while(fgets(str,10,fp2)!=0)        /*从文件中读取字符串并存放到字符数组str中,测试是否已读完*/
        printf("%s",str);               /*把数组str中的字符串输出到屏幕上*/
    printf("\n");                    /*换行*/
    fclose(fp2);                   /*关闭文件*/
}
运行结果:

输入字符串(以空串作为结束输入):
www.weixueyuan.net
123456!

输出字符串:
www.weixueyuan.net
123456!

本程序中定义了两个文件指针 fp1 和 fp2,分别用于写文件和读文件的操作。读者要熟悉 fgets() 函数和 fputs() 函数的使用。

第 15 行的“strlen(str)>0”语句用于测试从键盘输入的字符串是否为空串(即只输入回车符)。

优秀文章