C语言文件:用w方式打开的文件,可以读吗?

作者&投稿:卢备 (若有异议请与网页底部的电邮联系)
在c语言中文件打开方式w+和w有什么区别?w+是可读可写 如果文件存在会清空内容那还怎么进行读操作呢?~

w不能读,只能写,w+既可以读,又可以写,可以读之前写过的内容。

这个果断会,如果要向文件追加东西要用a或a+模式,具体应用可以查找相关资料.

用w方式打开的文件不可以读文件,w模式是只写文件。如果需要同时能够读写,请使用w+模式。各种模式的详解:

r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读写数据,文件必须存在。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。
a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)
a+ 以附加方式打开可读写的文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。 (原来的EOF符不保留)
wb 只写打开或新建一个二进制文件;只允许写数据。
wb+ 读写打开或建立一个二进制文件,允许读和写。
ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。
wx 创建文本文件,只允许写入数据.[C11]
wbx 创建一个二进制文件,只允许写入数据.[C11]
w+x 创建一个文本文件,允许读写.[C11]
wb+x 创建一个二进制文件,允许读写.[C11]
w+bx 和"wb+x"相同[C11]

1、C语言标准库提供了一系列文件操作函数。文件操作函数一般以f+单词的形式来命名(f是file的简写),其声明位于stdio.h头文件当中。例如:fopen、fclose函数用于文件打开与关闭;fscanf、fgets函数用于文件读取;fprintf、fputs函数用于文件写入;ftell、fseek函数用于文件操作位置的获取与设置。一般的C语言教程都有文件操作一章,可以找本教材进一步学习。
2、例程:

#include<stdio.h>
int a;
char b,c[100];
int main(){
    FILE * fp1 = fopen("input.txt", "r");//打开输入文件
    FILE * fp2 = fopen("output.txt", "w+");//打开输出文件
    if (fp1==NULL || fp2==NULL) {//若打开文件失败则退出
        puts("不能打开文件!");
        rturn 0;
    }
    fscanf(fp1,"%d",&a);//从输入文件读取一个整数
    b=fgetc(fp1);//从输入文件读取一个字符
    fgets(c,100,fp1);//从输入文件读取一行字符串
    
    printf("%ld",ftell(fp1));//输出fp1指针当前位置相对于文件首的偏移字节数
    
    fputs(c,fp2);//向输出文件写入一行字符串
    fputc(b,fp2);//向输出文件写入一个字符
    fprintf(fp2,"%d",a);//向输出文件写入一个整数
    
    fclose(fp1);//关闭输入文件
    fclose(fp2);//关闭输出文件,相当于保存
    return 0;
}


r 以只读方式打开文件,该文件必须存在。
r+ 以可读写方式打开文件,该文件必须存在。
rb+ 读写打开一个二进制文件,允许读数据。
rw+ 读写打开一个文本文件,允许读和写。
w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。
w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。

不行的,可以的话也不符合思维逻辑呀

破坏性的写,不能读,限制了。

不可以,w是只写。


C语言文件那章 "R"向计算机输入和 "W"向文件输入有什么区别
R就是读数据。就是从外部磁盘或移动设备上把数据读进CPU或其他指令系统,就是由外向内传输数据;W就是写数据,将内部数据写到磁盘上或输出到其他外部设备上,相当你把音乐从电脑下载到你优盘上一样

C语言文件打开时 w+和r+有什么不同。。除了一个要求文件必须存在 一个...
当文件不存在时,r+不会创建,而会导致调用失败,但w+会创建。如果文件存在,r+不会自动清空文件,但w+会自动把已有文件的内容清空。另外,r+打开文件后,会把读写指针指向文件的开头,所以会覆盖已有的文件 所以说,你的例子中,以r+方式打开,输入d,文件内容会变为dbc;以w+方式则会变为d。...

c语言中wb,rb是什么意思
wb代表二进制模式文件,允许写入文件,rb代表二进制模式,允许读取文件。形态字符串都可以再加一个 b 字符,如 rb、w+b 或 ab+ 等组合,加入 b 字符用来告诉函数库以二进制模式打开文件。如果不加 b,表示默认加了 t,即 rt、wt,其中 t 表示以文本模式打开文件。由 fopen() 所建立的新文件会...

C语言文件处理中wt是什么操作方式?
最常用的文件使用方式及其含义如下:1,"r".为读而打开文本文件.(不存在则出错)2,"rb".为读而打开二进制文件.3,"w".为写而打开文本文件.(若不存在则新建,反之,则从文件起始位置写,原内容将被覆盖)4,"wb".为写而打开二进制文件.5,"a".为在文件后面添加数据而打开文本文件.(若不存在,则新建...

在c语言中文件打开方式w+和w有什么区别?w+是可读可写 如果文件存在会清 ...
w不能读,只能写,w+既可以读,又可以写,可以读之前写过的内容。

c语言对文件操作,w只写,是每次执行打开文件命令时清空文件的数据吗?
C语言对文件操作,"w"每次执行打开文件命令时清空文件的数据,而不是每执行一次对文件写入的命令就把上一次的数据清空,只在打开文件时清空文件,在这次写入时不清空数据.如果不想清空原数据,用"a"追加写入模式打开文件.

c语言中文件的打开方式
1.用w方式打开就不说了,文件内容会被摧毁,肯定不行。2.When a file is opened with the "a" or "a+" access type, all write operations occur at the end of the file. The file pointer can be repositioned using fseek or rewind, but is always moved back to the end of the ...

c语言中,再对文件的操作模式中,a和a+、w和w+、r和r+有什么区别?_百度...
r 打开只读文件,该文件必须存在。r+ 打开可读写的文件,该文件必须存在。w 打开只写文件,若文件存在则文件长度清为0,即该文件内容会消失。若文件不存在则建立该文件。w+ 打开可读写文件,若文件存在则文件长度清为零,即该文件内容会消失。若文件不存在则建立该文件。a 以附加的方式打开只写文件...

请问一下c语言问题,以W方式打一文件,再写入是否把文件原有内容覆盖了...
是会覆盖原有内容.

若打开文件的方式为w,而该文件已经存在,则文件中原有数据将被清空。这...
对 可以百度百科fopen函数,查看参数用法

吉木萨尔县13480794430: C语言文件:用w方式打开的文件,可以读吗? -
虞华心肝: 破坏性的写,不能读,限制了.

吉木萨尔县13480794430: C语言使用文件的符号和意义. -
虞华心肝: r为以只读方式打开文件 w为以只写方式打开文件 r+为可读写方式打开 w+为可读写方式打开 加b为以二进制方式打开

吉木萨尔县13480794430: 在C语言中:常见的文件打开方式及含义 -
虞华心肝: r:打开一个文本文件只读 w:打开一个文本文件只写 a:对一个文本文件添加 rb:打开一个二进制文件只读 wb:打开一个二进制文件只写 ab:对一个二进制文件添加 r+:打开一个文本文件读/写 w+:生成一个文本文件读/写 a+:打开一个文本...

吉木萨尔县13480794430: c语言中用fopen 模式为W建立的文件,保存到哪里去了? -
虞华心肝: 保存在你现在的目录下,如果你建立的是二进制文件是打不开的,你可以指定你建立文件的类型 例如fopen("myfile.txt","w");这样建立的文件就可以用记事本打开,你也可以指定你要建立文件的路径,例如fopen("c:\new\myfile.txt","w")

吉木萨尔县13480794430: C文件中 有个使用文件打开方式为w我有点疑问 -
虞华心肝: 是可以改变的, 可写成 ,txt,dat,文件等等 如 FILE *fp; fp=fopen("out.txt","w"); fp=fopen("out.dat","w");

吉木萨尔县13480794430: C语言中有没有先清除原文件中内容再在该文件中读入新的内容的函数 -
虞华心肝: fopen("文件名","w")就可以了 C语言中规定,打开时以"w"方式打开文件时,如果源文件中有内容,先清空源文件的内容再供写入 #include "stdio.h" main() { FILE *fp; int n; scanf("%d",&n); fp=fopen("temp.txt","w"); fprintf(fp,"%d",n); fclose(fp); } 我给你个程序,你运行多次,每次运行时输入不同的值,每次运行完成后查看“temp.txt”文件中的内容,再有问题,和我联系!

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