标准I/O流

FILE结构体也称为流(Stream)

流分为文本流和二进制流,两者区别为:文本流:换行符表示为为“\r\n” 二进制流:换行符表示为为“\n”。

全缓冲:当流的缓冲区无数据或者无空间时才执行实际I/O操作。
行缓冲:当输入输出遇到换行符时进行I/O操作。
无缓冲:数据直接写入文件,流不进行缓冲。

标准I/O预定了三个流,程序运行时自动打开 :

标准输入流      0        stdin
标准输出流      1        stdout
标准错误流      2        stderr

用fgetc()和fputc()实现文件拷贝(文件复制)。

#include <stdio.h>

int main(int argc,char* argv[])                                //main函数传参,传入源文件和目标文件所在路径
{
 FILE *fpsrc,*fpdst;                                                  //指向两个文件的指针
 char ch;
 if(argc<3)
      {
         perror("few arguments.");
         return -1;
      }
 if((fpsrc=fopen(argv[1],"r"))==NULL)
     {
       perror("fopen fpsrc failed.");                               //用fopen()打开文件函数参数中包含路径名和打开方式 “r”为只读方式 “w”为只写方式
       return -1;
     }
 if((fpdst=fopen(argv[2],"w"))==NULL)
     {
        perror("fopen fpdst failed.");
        return -1;
     }
 while((ch = fgetc(fpsrc))!=EOF)                         //EOF为文件结束标志
     {
        fputc(ch,fpdst);
     }
        fclose(fpsrc);                                             //fclose()用于关闭流
        fclose(fpdst);
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值