十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
可换成
云南网站建设公司创新互联,云南网站设计制作,有大型网站制作公司丰富经验。已为云南上千多家提供企业网站建设服务。企业网站搭建\外贸网站建设要多少钱,请找那个售后服务好的云南做网站的公司定做!
void save()
{
char name[10];
FILE *fp;
int i;
scanf("%s",name)
if((fp=fopen(name,"wb"))==NULL)
{printf("cannot open file\n");
return;}
for(i=0;iMAX;i++)
if(fwrite(user[i],sizeof(struct diary_type),1,fp)!=1)
printf("file write error\n");
fclose(fp);
}
相关概念:
文件: 按一定规则存储在磁盘上的数据集合。
文件名: 能唯一标识某个磁盘文件的字符串。形式: 盘符:/ 路径 / 文件名.扩展名
文本文件:: 数据以其数字字符的ASCII码形式、一个字节一个字节地存储在磁盘上。
二进制文件:数据以二进制形式在存储在磁盘上。
设备文件:输入/输出设备
标准输入文件:键盘
标准输出文件/标准错误输出文件:显示器
文件型指针:C语言是通过名为FILE的结构型指针来管理文件读写的。FILE *变量名
文件的打开和关闭 :文件操作先建立文件与文件指针之间的关系,接着进行文件的读与写。建立文件与文件指针之间的联系的过程是文件的打开。终止这种联系就是文件的关闭
char ch;
ch = getchar () 功能等价于 ch = fgetc(stdin) 功能等价于 scanf("%c",ch) 功能等价于 fscanf(stdin, "%c",ch)
putchar(ch) 功能等价于 printf("%c",ch) 功能等价于 fputc(stdout) 功能等价于 fprintf(stdout, "%c", ch)
你可以用数组,也可以用链表来保存.
如果没有通过文件的形式来保存的话,就试用内存来保存好了,这样上面所说的数组,和和链表是不错的选择.
不过有个缺点,就是在下次启动的时候不能读取上次存入的数据,除了程序编译时生成的以外都不会保存.
如果想保存,最好就通过文件的形式来保存,即吧新加入的数据放进一个文件里面,修改的会修改相应的数据,删除也是同理,管理数据方面,建议使用数据库.
你的这个“保存文件”是什么意思?或者说是在什么情况下的?比如说:把信息输入到已经打开的文件中(关闭不关闭文件),另外,有没有缓冲区等?
最简单的就是:打开一个文件(open函数),把要写入的信息、数据通过write函数写入文件中,然后再用close函数关闭文件。这种是适时性的,一般我们会有缓冲区(通过建立一个临时文件或备份文件),即写入文件中的信息并没有直接写入到原文件,而是写入到缓冲区中,在应用程序中,如果我们确定要写入原文件,可以通过一个命令来把缓冲区中的内容再真正写入(可以用备份文件来替换原文件)到原文件中。
如果使用的是Dev-C++或者VC++,那么你可以新建一个Static Library工程,并在其中添加相应代码然后编译成*.lib文件,在以后的工程中即可随时引用。
当然如果不是用这类IDE工具的话,你可以将常用函数写到一个头文件(*.h)中,在以后的代码文件中可以直接通过include该头文件来实现代码重用。
以上两种方法都需要被保存的文件(*.lib,*.h)被放在适当目录,一般的编译器都有环境目录的选项,需要在Library Directry及Header Directry中设置一下。当然如果不进行设置也可以,那就需要将这些文件复制到工程所在目录了。