文件io-写文件:fputc,fputs

1、fputc写一个字符到文件

函数原型:

#Include <stdio.h>

int fputc(int ch, FILE *stream);

 

#include <stdio.h>
//实现文件复制,将test1.txt复制到test2.txt
int main()
{
    FILE *file;
    FILE *file_test2;
    char ret;
    file =fopen("E:\\C\\vscode\\C\\demo\\qiniuschool\\test1.txt", "r");
    file_test2 =fopen("E:\\C\\vscode\\C\\demo\\qiniuschool\\test2.txt", "a");
    if(!file || !file_test2)
    {
        puts("file open fail!ERROR!");
        return 1;
    }

    while((ret=getc(file))!= EOF)
    {
        fputc(ret,file_test2);
    }

    fclose(file);
    fclose(file_test2);
           
    return 0;
}

test2.txt

hello world
you are handsome!

test2.txt

you should copy test1.txt to test2.txt.
do you know?
do not be a loser.

 1、file_test2 =fopen("test2.txt", "r");

 因为fopen文件二时候,我们给的权限是r:可读

执行程序后,test2文件没有变化

2、 file_test2 =fopen("test2.txt", "r+");

我们改权限为r+,

test2.txt内容如下

将test1.txt的内容写到了text2中,对应大小的字符替换。

hello world
you are handsome!est2.txt.
do you know?
do not be a loser.

3、使用w权限,后的test2.txt文件

因为是直接创建覆盖了

hello world
you are handsome!

4、使用a权限后

在原始的文本后,加了test1文本的内容

you should copy test1.txt to test2.txt.
do you know?
do not be a loser.hello world
you are handsome!

2、fputs写一个字符串到文件中去

函数原型

#include <stdio.h>

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

将test1.txt拷贝到了test2.txt

#include <stdio.h>
#include <stdlib.h>
//将一个文件拷贝到另外一个
int main()
{
    FILE *file;
    FILE *file_test2;
    char line[128];
    file =fopen("E:\\C\\vscode\\C\\demo\\qiniuschool\\test1.txt", "r");
    file_test2 =fopen("E:\\C\\vscode\\C\\demo\\qiniuschool\\test2.txt", "w");
    if(!file || !file_test2)
    {
        puts("file open fail!ERROR!");
        return 1;
    }

    //将字符串打印到文件中去
   // fputs("\nnike nike123",file);
    //将字符串输出到屏幕
    fputs("hello world",stdout);
    //将一个文件拷贝到另外一个
    while(fgets(line,sizeof(line),file))
    {
        fputs(line,file_test2);
    }

    fclose(file);
    fclose(file_test2);

    return 0;
}

拷贝成功。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值