第十八次作业

拷贝一

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    FILE* fp=fopen("./1.txt","r");
    FILE* fp1=fopen("./2.txt","w+");
    printf("文件拷贝前:\n");
    char b;
    while(1)
    {
        b=fgetc(fp1);
        if(b==EOF)
            break;
        printf("%c",b);
    }
    putchar(10);
    printf("文件拷贝后:\n");
    char  temp;
    int a;
    while(1)
    {
        a=fscanf(fp,"%c",&temp);
        if(a==EOF)
        {                                                                 
            break;
        }
        printf("%c",temp);
        fprintf(fp1,"%c",temp);
    }
    
    fclose(fp);
    fclose(fp);
    return 0;
}   

运行效果

ubuntu@ubuntu:~/文件IO/01$ gcc 01main.c 
ubuntu@ubuntu:~/文件IO/01$ ./a.out 
文件拷贝前:

文件拷贝后:
生鱼片其实是死鱼片
三十年河东三十年河西,莫欺少年穷.
ubuntu@ubuntu:~/文件IO/01$ 

拷贝二

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    FILE* fp=fopen("./1.txt","r");
    FILE* fp1=fopen("./2.txt","w+");
    printf("文件拷贝前:\n");
    char b;
    while(1)
    {
        b=fgetc(fp1);
        if(b==EOF)
            break;
        printf("%c",b);
    }
    putchar(10);
    printf("文件拷贝后:\n");
    char  temp;
    char a;
    while(1)
    {
        a=fgetc(fp);
        if(a==EOF)
        {
            break;
        }
        printf("%c",a);
        fputc(a,fp1);

    }

    fclose(fp);
    fclose(fp);
    return 0;
}                                                               

运行效果

ubuntu@ubuntu:~/文件IO/01$ gcc 01main.c 
ubuntu@ubuntu:~/文件IO/01$ ./a.out 
文件拷贝前:

文件拷贝后:
生鱼片其实是死鱼片
三十年河东三十年河西,莫欺少年穷.
ubuntu@ubuntu:~/文件IO/01$ 
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    FILE* fp=fopen("./1.txt","r");
    FILE* fp1=fopen("./2.txt","w+");
    printf("文件拷贝前:\n");
    char b;
    while(1)
    {
        b=fgetc(fp1);
        if(b==EOF)
            break;
        printf("%c",b);
    }
    putchar(10);
    printf("文件拷贝后:\n");
    char  temp;
    char a[100];
    char *aa;
    while(1)
    {
        aa=fgets(a,sizeof(a),fp);                                      
        if(aa==NULL)
            break;
        printf("%s",aa);
        fputs(aa,fp1);
    }

    fclose(fp);
    fclose(fp);
    return 0;
}
                                                                       

 

ubuntu@ubuntu:~/文件IO/01$ ./a.out 
文件拷贝前:

文件拷贝后:
生鱼  片其实是 死鱼片
三  十年河东三十  年河西,莫欺少年穷.
我才是这世界  唯一的真理;
ubuntu@ubuntu:~/文件IO/01$ 

问题测试

#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    FILE* fp=fopen("./1.txt","r+");
    if(fseek(fp,-2,SEEK_SET))             
    {
        printf("失败\n");
    }else
    {
        printf("成功\n");
    }
    fputc('b',fp);
    fclose(fp);
    return 0;
}
ubuntu@ubuntu:~/文件IO/01$ ./a.out 
失败
#include <stdio.h>
#include <string.h>
int main(int argc, const char *argv[])
{
    FILE* fp=fopen("./1.txt","r+");
    if(fseek(fp,2, SEEK_END))
    {
        printf("失败\n");
    }else
    {
        printf("成功\n");
    }
    fputc('c',fp);                                        
    fclose(fp);
    return 0;
}
 cccaaba
 ^@^@c        
              

后移动可以前面的会补充成未知的东西

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值