file文件的创建和操作

  1. 当我们所要读取的文件不存在的时候进行自动生成。
  • 使用fopen函数
  • 1.fopen()

    警告

    小心!如果使用任何一种"w"模式打开一个已有的文件,文件内容将被删除,以便程序以一个空文件开始操作。

    (我发现自己就很傻,在文件的前面进行了文件存在的判定,但是mode写的是rb,导致我在后面的读操作中,每次都是添加写操作之后可以读出内容,但是当我删除写操作(我也查看了目录正是那个文件有内容1kb),再进行都读写的时候发现就没有任何内容输出了 !) fopen的原型是:FILE *fopen(const char *filename,const char *mode),fopen实现三个功能:为使用而打开一个流,把一个文件和此流相连接,给此流返回一个FILR指针。 参数filename指向要打开的文件名,mode表示打开状态的字符串,其取值如下: 字符串 含义 "r" 以只读方式打开文件 "w" 以只写方式打开文件 "a" 以追加方式打开文件 "r+" 以读/写方式打开文件,如无文件出错 "w+" 以读/写方式打开文件,如无文件生成新文件
  • 2. 文件的文本模式和二进制模式
  •  一个文件可以以文本模式或二进制模式打开,这两种的区别是:在文本模式中回车被当成一个字符’\n’,而二进制模式认为它是两个字符 0x0D,0x0A;如果在文件中读到0x1B,文本模式会认为这是文件结束符,也就是二进制模型不会对文件进行处理,而文本方式会按一定的方式对数据作相应的转换。
    
      系统默认的是以文本模式打开,可以修改全部变量_fmode的值来修改这个设置,例如_fmode=O_TEXT;就设置默认打开方式为文本模式;而_fmode=O_BINARY;则设置默认打开方式是二进制模式。
相对路径下的文件,如果没有fopen里面对应的文件,将自动进行生成。
如果是绝对路径,只有在目录存在的情况下才能正常打开,否则打开失败。





FILE *fp;
if(fp=fopen("123.text","wb"))  //相对路径。
puts("文件打开成功!");
else
puts("文件打开失败!");


if(fp=fopen("D:\\程序1\\test.text","wb"))  //相对路径。
puts("文件打开成功!");
else
puts("文件打开失败!");


特别需要注意;上述代码中没有假如没文件是否创建的操作,因为我使用的是wb  读写,如果不存在便会自动创建文件。
下面为文件的判断成功打开代码:

/*if((fp=fopen(filename,"w"))==NULL) 无需进行判断,因为若所用文件不存在,则会创建新的文件
{
  printf("无法打开此文件\n");
  exit(0);
}*/


3.文件内容的读写。

//写操作
fp=fopen("123.text","w");
char ch;
ch=getchar();
printf("请输入一个准备存储到磁盘的字符串,以#结束:\n");
ch=getchar();
while(ch!='#')
{
fputc(ch,fp);
putchar(ch);
ch=getchar();
}
fclose(fp);
  //读操作

fp=fopen("123.text","r");


while(!feof(fp))
{
char ch;
ch=fgetc(fp);


putchar(ch);

}

fclose(fp);





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值