你可以用数组,也可以用链表来保存.
公司主营业务:成都做网站、网站设计、外贸营销网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出孟村免费做网站回馈大家。
如果没有通过文件的形式来保存的话,就试用内存来保存好了,这样上面所说的数组,和和链表是不错的选择.
不过有个缺点,就是在下次启动的时候不能读取上次存入的数据,除了程序编译时生成的以外都不会保存.
如果想保存,最好就通过文件的形式来保存,即吧新加入的数据放进一个文件里面,修改的会修改相应的数据,删除也是同理,管理数据方面,建议使用数据库.
可换成
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)
1. 代码本身是存储在内存的代码段中的,而函数没有说存储的概念,函数调用时是通过栈来实现的。
2.在函数体内声明的变量在默认情况下都是auto存储类型
在代码块之间传递信息的一种方法就是使用外部变量。当一个变量在函数的外部被声明时,安的存储空间是永久分配的,安人存储类型是extren.外部变量的声明看上去和函数或代码块内部所声明的变量一样。外部变量对于它之后的所有函数都有效。在代码块或函数后,外部变量仍然存在。
3.static的基本用途是允许一个局部变量在重新进入代码块时能够保持原来的值。这和自动变量形成了鲜明的对比,自动变量在代码块时会被销毁,再次进入这个代码块时,它必须重新进行初始化。
4.egister存储类型告诉编译器相关的变量应该改量存储在高速度的寄存器中。使用register存储类型的目的一般是为了提高执行速度,但是,register声明只是向编译器所提出的“建议”,并非强制要求。