【c语言】【文件】的小问题

来源:百度知道 编辑:UC知道 时间:2024/06/05 21:02:15
#include<stdio.h>
void fun(char *fname,char *st)
{
FILE *myf;int i;

myf=fopen(fname,"w");
for(i=0;i<strlen(st);i++)
fputc(st[i],myf);
fclose(myf);}
int main()
{
fun("test.t","new world");
fun("test.t","hello,");
return 0;}
我很茫然为什么他TEST里的东西是HELLO,
我觉得应该是hello,rld啊

w 方式打开文件 ,将首先把文件清空 。 所有第二次调用函数会覆盖第一次的 。
可以改成 a+这种方式。
另外,你的: myf = fopen();
最好加上错误处理 ,
if(NULL == myf) { ... }.因为一旦找不到文件或其他错误, 你的程序将异常退出而没有提示 。

w模式是清空文件原有的内容,而不是覆盖

楼上很对啊,你可以更改文件打开模式:
w+ 或 a+都可以的