C语言文件如何不被覆盖

提问:C语言文件如何不被覆盖

先给一个文件存一组字符串 再次输入一组字符串 存入同一文件 输出的却是第二次输入的字符串有啥办法就是也可以把第一次输入的也输出出来

网友回答:

将你要实现的代码贴出来看看啊,不然不同的函数接口,或者不同的调用地方是不一样的。

比如是谭浩强那本书里说的 fopen时 ,注意给对应的mode正确的参数即可。

  函数原型:FILE * fopen(const char * path,const char * mode);   

返回值:文件顺利打开后,指向该流的文件指针就会被返回。如果文件打开失败则返回NULL,并把错误代码存在errno 中。   

参数说明:   参数path字符串包含欲打开的文件路径及文件名,参数mode字符串则代表着流形态。   

mode有下列几种形态字符串:   

r 以只读方式打开文件,该文件必须存在。   

r+ 以可读写方式打开文件,该文件必须存在。   

rb+ 读写打开一个二进制文件,允许读数据。   

rw+ 读写打开一个文本文件,允许读和写。   

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

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

a 以附加的方式打开只写文件。若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾,即文件原先的内容会被保留。(EOF符保留)   

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

wb 只写打开或新建一个二进制文件;只允许写数据。   

wb+ 读写打开或建立一个二进制文件,允许读和写。   

wt+ 读写打开或着建立一个文本文件;允许读写。   

at+ 读写打开一个文本文件,允许读或在文本末追加数据。   

ab+ 读写打开一个二进制文件,允许读或在文件末追加数据。

如果你是要实现灵活控制写入的位置,除了在open的时候让其可写,还需要配合使用fseek

int fseek(FILE *stream, long offset, int fromwhere);

void fun(char *filename, STU n)   

{   

FILE *fp;   

fp = fopen(filename, "rb+");   

fseek(fp, -1L*sizeof(STU),SEEK_END);   

fwrite(&n, sizeof(STU), 1, fp);   

fclose(fp);   

}


相关推荐

C语言的里文件问题,怎么可以求出结果是45呢,求详细分析

C语言的里文件问题,怎么可以求出结果是45呢,求详细分析

C语言的文件问题

C语言的文件问题

c语言读取文件字符串首字符丢失问题怎么解决

c语言读取文件字符串首字符丢失问题怎么解决

在c语言软件vc6.0中新建的文件建立时为啥总显示该文件不存在呢

在c语言软件vc6.0中   新建的文件  建立时为啥总显示该文件不存在呢

c语言中在一个程序内对文件进行输入读取操作能输入数据但读取不出文件创建的文件存在但显示读取错误

c语言中在一个程序内对文件进行输入读取操作能输入数据但读取不出文件创建的文件存在但显示读取错误

C语言C++谜题。请问一下读书高手C/C++编程的中文分号与英文分号有区别吗?编译时会出错吗?

C语言C++谜题。请问一下读书高手C/C++编程的中文分号与英文分号有区别吗?编译时会出错吗?

c语言编写程序,读入正整数n,和n个正整数,递增排序后保存在文本文件result.txt里

c语言编写程序,读入正整数n,和n个正整数,递增排序后保存在文本文件result.txt里

C语言代码SendOnePix(&ptr[(3*k)])怎么理解

C语言代码SendOnePix(&ptr[(3*k)])怎么理解

C语言中,指针函数和函数指针有什么区别?

C语言中,指针函数和函数指针有什么区别?

c语言如何去一个有序数组重复的数字

c语言如何去一个有序数组重复的数字

C语言中“?”的用法

C语言中“?”的用法

c语言里共用体的最后一次成员赋值问题求解

c语言里共用体的最后一次成员赋值问题求解

C语言中x=3,则printf("%d",x++)的输出结果是什么

C语言中x=3,则printf("%d",x++)的输出结果是什么

C语言 vc6

C语言 vc6

c语言for循环

c语言for循环

盒子游戏,游戏玩家专属个性阅读社区


©CopyRight 2010- 2020 BOXUU.COM Inc All Rights Reserved

鄂公网安备 35020302000061号- 鄂ICP备2020015574号-1