c语言中,再对文件的操作模式中,a和a+、w和w+、r和r+有什么区别?

作者&投稿:舟洁 (若有异议请与网页底部的电邮联系)
在C语言的文件中,像r,w,a,r+,w+,a+分别是什么意思,前面三者与后面三者有什么区别吗?~

一、含义不同:
r是只读,文件已存在,指针在文件头;r+是读写方式,读写指针都在文件头。w是只写方式,w+是读写方式建立新文件,读指针在文件头。a是追加方式打开文件,指针指向文件尾;a+是读写方式打开文件,读从文件开始,写从文件尾开始。
二、使用不同:
r:该文件必须存在。
r+:该文件必须存在。
w:若文件不存在则建立该文件。
w+:若文件不存在则建立该文件。

+: 读和写
凡用“r”打开一个文件时,该文件必须已经存在,且只能从该文件读出。
用“w”打开的文件只能向该文件写入。若打开的文件不存在,则以指定的文件名建立该文件,若打开的文件已经存在,则将该文件删去,重建一个新文件。
若要向一个已存在的文件追加新的信息,用“a”方式打开文件。如果指定文件不存在则尝试创建该文件。
以上内容参考:百度百科-c语言fopen函数

r 打开只读文件,该文件必须存在。r+ 打开可读写的文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
补充:
a和a+、w和w+、r和r+是mode几种形态字符串。

这是文件操作中的mode应用问题。
fopen(打开文件)
相关函数 open,fclose
表头文件 #include<stdio.h>
定义函数 FILE * fopen(const char * path,const char * mode);
函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。
mode有下列几种形态字符串:
r 打开只读文件,该文件必须存在。
r+ 打开可读写的文件,该文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。
上述的形态字符串都可以再加一个b字符,如rb、w+b或ab+等组合,加入b 字符用来告诉函数库打开的文件为二进制文件,而非纯文字文件。不过在POSIX系统,包含Linux都会忽略该字符。由fopen()所建立的新文件会具有S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH(0666)权限,此文件权限也会参考umask值。
返回值 文件顺利打开后,指向该流的文件指针就会被返回。若果文件打开失败则返回NULL,并把错误代码存在errno 中。
附加说明 一般而言,开文件后会作一些文件读取或写入的动作,若开文件失败,接下来的读写动作也无法顺利进行,所以在fopen()后请作错误判断及处理。
范例
#include<stdio.h>
main()
{
FILE * fp;
fp=fopen(“noexist”,”a+”);
if(fp= =NULL) return;
fclose(fp);
}

希望可以帮到你!

  1. r 打开只读文件,该文件必须存在。r+ 打开可读写的文件,该文件必须存在。

  2. w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

  3. a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。



a和a+如果指定的文件不存在,会出错,而不会创建新文件

物理科学巨人霍金去世,您身体受困于轮椅,思想却能遨游宇宙,希望您在那边能身体和思想都能真正自由翱翔,让时间永留简史吧,让黑洞发出“声响”吧。

r:以只读的方式打开文本文件,文件必须存在;

w:以只写的方式打开文本文件,文件若存在则清空文件内容从文件头部开始写,若不存在则根据文件名创建新文件并只写打开;

a:以只写的方式打开文本文件,文件若存在则从文件尾部以追加的方式开始写,文件原来存在的内容不会清除(除了文件尾标志EOF),若不存在则根据文件名创建新文件并只写打开;

r+:以可读写的方式打开文本文件,文件必须存在;

w+:以可读写的方式打开文本文件,其他与w一样;

a+:以可读写的方式打开文本文件,其他与a一样;

若打开二进制文件,可在后面加个b注明,其他一样,如rb,r+b(或rb+)。

再次缅怀霍金。

士兵不分入伍前身份户籍,也不看军衔等级,符合条件才能安置。
《退役士兵安置条例》,自2011年11月1日起施行。
第二十九条 退役士兵符合下列条件之一的,由人民政府安排工作:
(一)士官服现役满12年的;
(二)服现役期间平时荣获二等功以上奖励或者战时荣获三等功以上奖励的;
(三)因战致残被评定为5级至8级残疾等级的;
(四)是烈士子女的。
符合前款规定条件的退役士兵在艰苦地区和特殊岗位服现役的,优先安排工作;因精神障碍基本丧失工作能力的,予以妥善安置。


C语言中怎样读取文件数据并对数据排序再重新写入文件
include <stdio.h> include <stdlib.h> \/**C语言中怎样读取文件数据并对数据排序再重新写入文件*\/ int main(){ FILE *fp,*fpn; \/\/创建文件指针fp和fpn int a[10],b[10],i,j,temp; \/\/a数组用来存入数据 b数组用来接受文件数据进行重新排序输出 for(i = 0; i < 10; i++)...

在c语言编程中如何实现程序对文本文件中字符串进行替换及生成新的文本...
我以前刚学C++的时候写过一个相似的程序,如果你要的是纯C语言下的编程,那么你就参考一下,这个算法的原理是一样的,即读入一个字符就显示出来。当然你也可以考虑其他实现方式。这个C++的程序中,和C语言区别的主要是有些输入和输出不太一样。还有system("pause")这个是调用系统暂停功能,可能在TC等...

c语言中的编辑,编译,连接,运行分别是什么意思
1、编辑:编写代码,制作C语言的源文件。2、编译:是由编译程序将C语言源文件转换成二进制中间文件,对文件内部的语法语义做处理,如果编译出错,无法进行后续动作。3、链接:将编译中生成的中间文件组合成二进制可执知行文件,这一步会对文件之间的关联做检查,如果出错,将不会生成可执行文件,也就无法...

C语言中调用文件问题
习惯上也笼统地把fp称为指向一个文件的指针。文件的打开与关闭文件在进行读写操作之前要先打开,使用完毕要关闭。 所谓打开文件,实际上是建立文件的各种有关信息, 并使文件指针指向该文件,以便进行其它操作。关闭文件则断开指针与文件之间的联系,也就禁止再对该文件进行操作。在C语言中,文件操作都是...

c语言中如何用随机数产生一万个数写入文件中,排序后再写入另一个文件...
随机数 文件写入 排序 这三个模块即可 大体实现 如下 include <stdio.h> include include <stdlib.h> define N 10000 void sort(int *a){ } main(){ int a[N],i;FILE *fp;srand(time(NULL));for(i=0;i<N;i++)a[i]=rand()%10000+1;\/\/随机数 sort(a);\/\/排序 fp=fopen("a...

在同一c语言中对一个文件先读后写写一次FILE*fp就够了吧?
在c语言里调用fopen函数可以打开文件,通过给它配置不同的文件使用方式的参数,可以实现只读\/只写\/追加等等不同的功能。如果先读后写的话可以用fopen(“xxfile”,“r+”)的方式实现。并且只需open一次。请采纳,谢谢。

c语言打开文件,要实现读取再写入,用哪种打开方式?
wt+ wb+写入时都是将原来的文件覆盖的,也就是删除了。你可以采用r+的方式,你也可以好好理解下面的几种情况试试看,我还没有时间试过一遍。r 以只读方式打开文件,该文件必须存在。r+ 以可读写方式打开文件,该文件必须存在。rb+ 读写打开一个二进制文件,只允许读写数据。rt+ 读写打开一个...

C语言中要读一个文件需要文件路径么
文件不在执行程序的文件夹内,就需要完整的文件路径。在文件夹内,使用文件名即可。1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、...

C语言对文件操作,用fputs函数不能把字符串写入文件?
读写一个字符数据 经过前面的学习,我们学习了fread()、fwrite()函数的操作,这两个函数都是对一段“内存块”进行读写操作。那么,C语言还提供了fgetc()、fputc()函数,对文件中的一个字符进行读写操作。这些函数的定义如下:int fgetc(FILE *stream);函数说明:从stream文件指针所指向的文件读取1个...

c语言在头文件中如何引用另一个头文件中的函数
。。。#endif。这是为了避免重复定义。4、#ifndef后面要写的是头文件名称的大写。例如:test.h要写成__TEST_H__。前面与后面是两个下划线。字母用大写。5、然后在define与endif中间声明函数名,记得写冒号。6、然后在main文件中写上include这个头文件,就可以调用了。7、最后编译,运行,就完成了。

秀山土家族苗族自治县18946662840: c语言中,再对文件的操作模式中,a和a+、w和w+、r和r+有什么区别? -
茹毓马栗: 这是文件操作中的mode应用问题. fopen(打开文件) 相关函数 open,fclose 表头文件 #include<stdio.h> 定义函数 FILE * fopen(const char * path,const char * mode); 函数说明 参数path字符串包含欲打开的文件路径及文件名,参数mode字符...

秀山土家族苗族自治县18946662840: 在C语言中:常见的文件打开方式及含义 -
茹毓马栗: r:打开一个文本文件只读 w:打开一个文本文件只写 a:对一个文本文件添加 rb:打开一个二进制文件只读 wb:打开一个二进制文件只写 ab:对一个二进制文件添加 r+:打开一个文本文件读/写 w+:生成一个文本文件读/写 a+:打开一个文本...

秀山土家族苗族自治县18946662840: C语言 文件使用方式问题 -
茹毓马栗: A B 文件使用方式 “rt” 只读打开一个文本文件,只允许读数据 “wt” 只写打开或建立一个文本文件,只允许写数据 “at” 追加打开一个文本文件,并在文件末尾写数据 “rb” 只读打开一个二进制文件,只允许读数据 “wb” 只写打开或建立...

秀山土家族苗族自治县18946662840: c语言中 对文件都有哪些基本操作? -
茹毓马栗: 1.文件的打开fopen()2.关闭文件函数fclose() 3.文件的读写 4.清除和设置文件缓冲区 5.文件的随机读写函数

秀山土家族苗族自治县18946662840: C语言中,假设以rb(“二进制输入”)格式打开了一个文件,那A在里面是怎么保存的?,是不是ascii形式? -
茹毓马栗: 文件“里面”是怎么存储的与你“读打开”是二进制方式还是字符方式并无关系,这个文件原来如果是以“二进制形式”存入的,那它还是二进制形式,如果是以字符方式存入的,那它还是字符方式.

秀山土家族苗族自治县18946662840: C语言中先读写文件还是先定义指针 -
茹毓马栗: 选C.如下 FILE *fp; fp = fopen(参数); fprintf(....); fscanf(....); fclose(fp); 请采纳,谢谢

秀山土家族苗族自治县18946662840: 在c语言程序中,对文件操作首先要 - ----;然后对文件操作,最后要对文件实行----操作,防止文件中信息的丢失 -
茹毓马栗: 是填空题吗,还是要程序,我这有 对文件操作首先要-----打开文件 调用fopen()函数;然后对文件操作,最后要对文件实行----关闭文件 fclose()操作,防止文件中信息的丢失

秀山土家族苗族自治县18946662840: C语言写入文件的操作 -
茹毓马栗: 用ab模式打开文件,先用fseek()、fsetpos()等函数设置读写位置,再进行读写操作.

秀山土家族苗族自治县18946662840: 在C语言中,我可以用a=1,给a赋值.如果我把1保存为一个文本文件,放在E盘,怎么样才能用对文件操作的方式,将1赋给a..求大神
茹毓马栗:你好,很高兴为你答疑. 假设文件指针为fp且已经指向数字1的存储单元. 那么fscanf(fp,"%d",&a); 这样即可. 若对我答案满意还望采纳,你的采纳将是我为其他问友服务的动力.^_^

秀山土家族苗族自治县18946662840: C语言对文件的操作 -
茹毓马栗: 没有办法,顺序文件,插一个字,就要从这个位置开始重写.按读写文件打开.从这个位置开始重写.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网