打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
fopen文件操作

#include <stdio.h>

/*
    FILE *fp;
    【1】FILE *fopen(char *name, char *mode);

    【2】// 流fp出现错误,返回非0值
    int ferror(FILE *fp)

    【3】// 到达文件末尾,返回非0值
    int feof(FILE *fp)

    
    【4】// 返回fp指向的输入流中的下一个字符,文件尾或错误返回EOF
    int getc(FILE *fp); 

    【5】// 将字符c写入到fp指向的文件中,并返回写入的字符。错误返回EOF
    int putc(int c, FILE *fp);

    【6】
    #define getchar() getc(stdin)
    #define putchar() putc((c), stdout)

    【7】
    int fscanf(FILE *fp, char *format, ...)
    int fprintf(FILE *fp, char *format, ...)

    【8】
     // 从fp中读取maxline - 1 个字符并以'\0'结尾保存到数组line中。
     // 通常返回line遇文件结尾或发生错误返回NULL。

     char *fgets(char *line, int maxline, FILE *fp)

     // 将一个字符串写入到一个文件中。
     // 发生错误返回EOF,否则返回一个非负值。

     char *fputs(char *line, FILE *fp)

     【9】

      // 与fgets和fputs类似,但其对stdin,stdout进行操作
      gets在每行末尾删除'\n'
      puts在每行末尾添加'\n'
      char *gets(char *s);

      int puts(const char *s);

*/


/* cat函数的实现 */
int main(int argc, char *argv[])
{
    FILE *fp;
    void filecopy(FILE *, FILE *);

    if(argc == 1) /* 若没有命令行参数,则复制标准输入 */
        filecopy(stdin,stdout);
    else
        while(--argc > 0)
            if((fp = fopen(*++argv, "r")) == NULL)
            {
                printf("cat:can't open %s\n", *argv);
                return 1;
            }
            else
            {
                filecopy(fp, stdout);
                fclose(fp);
            }

    return 0;
}

/* filecopy函数: 将文件ifp复制到文件ofp */
void filecopy(FILE *ifp, FILE *ofp)
{
    int c;

    while((c = getc(ifp)) != EOF)
        putc(c, ofp);
}
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
基于C的文件操作
C语言文件操作详解
C语言fgetc和fputc函数用法详解(以字符形式读写文件)
C语言编程初学者基础知识学习:文件的读写操作!
小话c语言(4)
【C语言】文件常用读写操作(含读取学生信息示例)
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服