读写文件的四个函数用法详解

#include <stdio.h>
#include <stdlib.h>
#define N 100
int main(){
    FILE *fp;
    char str[N+1];
    if( (fp=fopen("F:\\clion c++\\code\\cmake-build-debug-coverage\\t1.txt","r")) == NULL ){
        puts("Fail to open file!");
        exit(0);
    }

  fread(str, sizeof(str), 1,fp) ;
        printf("%s", str);

//当以rb打开文件的时候,会读取we45fd67d(这时候后面有\n此时结束,输出时,光标移动到了第二行),然后又读取了'\n'字符输出,光标移动到了第三行.......
//结果如下:
//we45fd67d
//
//sf45gf87dvf4gh7
//但是当以r打开文件时,读取了we45fd67d'\n'sf45gf87dvf4gh7故只是输出一个换行。
    fclose(fp);
    return 0;
}
//操作系统对换行符(‘\n’)的处理不同(不重要)
//文本文件,操作系统会对’\n’进行一些隐式变换,因此文本文件直接跨平台使用会出问题。
//在Windows下,写入’\n’时,操作系统会隐式的将’\n’转换为”\r\n”,再写入到文件中;读的时候,///会把“\r\n”隐式转化为’\n’,再读到变量中。
//在Linux下,写入’\n’时,操作系统不做隐式变换。
//二进制文件,操作系统不会对’\n’进行隐式变换,很多二进制文件(如电影、图片等)可以跨平台使用。


全部评论

相关推荐

不愿透露姓名的神秘牛友
11-27 10:48
点赞 评论 收藏
分享
10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务