代码改变世界

C语言文件操作

2015-12-03 22:57  AB小博客  阅读(397)  评论(0)    收藏  举报

/*使用文件的方式 

 r:只读 ,如果文件不存在 出错

 w:只写,如果文件不存在 建立新文件

 a:追加,向文本文件末尾添加数据

 rb表示以二进制方式读取,如果文件不存在 出错

 r表示以文本方式读取

wb:只写,如果文件不存在 建立新文件

ab:追加,向二进制文件尾添加数据,如果文件不存在 出错

r+: 读写,如果文件不存在 出错

w+: 读写,如果文件不存在 建立新文件

a+: 读写,如果文件不存在 出错

rb+:读写,如果文件不存在 出错

wb+:读写,如果文件不存在 建立新文件

ab+:读写 如果文件不存在 出错*/

写入文件

写入单个字符 fputc('C', file);

    char *filePath = "/Users/mac/Desktop/5.txt";

    char *mode = "a";

    FILE *file = fopen(filePath, mode);  //打开文件路径  打开类型 w写write  r读read a追加append

    //写文件

    if (file) {

        printf("打开成功!");

    }else{

        printf("打开失败!");

    }

    char *content = "Hello World! Hello World! Hello World! Hello World! Hello World! Hello World! ";  要写入的字符串

    long len = strlen(content);   //用strlen求出字符串的长度

  一个一个写入进去

    for (int i = 0; i<len; i++) {

        fputc(content[i], file);   

    }

   fputc('C', file);  //写入一个字符 如果写入多个字符 可以用for循环

 fclose(file);  //关闭文件

  写入字符串: fputs("写入的字符串", file);

 

 

 

 

 

 读取文件    

 

读取单个字符:fgetc(file)

关键字 fgetc(file)  一次读取一个字符  可以用for循环来读取文件  EOF是文件结尾

  int a;

    while ((a=fgetc(file))!=EOF) {  //End Of File

        putchar(a);     //注意 (a=fgetc(file))!=EOF EOF是文件结尾

    }

读取特定长度字符:

char str[50];

    fgets(str, 20, file);  读取前20个字符

    printf("%s",str);

重命名和 删除文件

   rename(filePath, "/Users/mac/Desktop/5.txt"); //文件重命名 前提是打开文件

    remove("/Users/mac/Desktop/5.txt"); //删除里面填写文件路径

 

 //文件复制

    char *oldFileStr = "/Users/mac/Desktop/05.png";

    char *newFileStr = "/Users/mac/Desktop/2.png";

    FILE *oldFile,*newFile;

    //read binary rb

    //write binary wb

    //tr text read

    oldFile = fopen(oldFileStr, "rb");//以二进制 读

    newFile = fopen(newFileStr, "wb");//以二进制 写

     char buffer[MAX_LEN]; //申请一个缓冲区 1024

    while (!feof(oldFile)) {

        fread(buffer, 1, MAX_LEN, oldFile);  //读取  1为每次读取多少个 每次读取1024字节  可以直接用1

        fwrite(buffer, 1, MAX_LEN, newFile);//写入

    }

    fclose(newFile);

    fclose(oldFile);

   查看文件大小

 

 

    FILE *f = fopen("/Users/mac/Desktop/05.png", "rb");

    fseek(f, 0, SEEK_END);     //告诉计算机文件的位置

    long size = ftell(f);  //获得文件大小

    printf("%ld\n",size); 

    fclose(f);