void save(){ /*建立保存文件函数*/
站在用户的角度思考问题,与客户深入沟通,找到钟山网站设计与钟山网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站制作、成都做网站、外贸营销网站建设、企业官网、英文网站、手机端网站、网站推广、主机域名、网页空间、企业邮箱。业务覆盖钟山地区。
int i;
FILE *fp; /*定义文件型指针*/
system("CLS");
if((fp=fopen("student.txt","wb"))==NULL){ /*打开输出文件*/
printf("不能打开文件!\n");
return; /*终止程序*/
}
for(i=0;in;i++) /*向student文件中写入信息*/ // 这是所谓的上边
if(fwrite(stu[i],sizeof(struct student),1,fp)!=1) // 这里写文件上边有写
// fwrite() 这个函数 写文件 // 你可以百度 fwrite( ) 百科里有介绍
printf("文件写入错误\n");
fclose(fp); /*关闭文件*/
printf("\n\n\n\n\t\t\t学生信息保存成功!\n");
printf("\n\n\n\n\t\t\t按任意键返回菜单!!");
getch();
}
1、在主函数增加一个变量,存储这个函数的返回值
2、用一个指针变量指向他的地址,形参指针可以改变实参
你可以用数组,也可以用链表来保存.
如果没有通过文件的形式来保存的话,就试用内存来保存好了,这样上面所说的数组,和和链表是不错的选择.
不过有个缺点,就是在下次启动的时候不能读取上次存入的数据,除了程序编译时生成的以外都不会保存.
如果想保存,最好就通过文件的形式来保存,即吧新加入的数据放进一个文件里面,修改的会修改相应的数据,删除也是同理,管理数据方面,建议使用数据库.
1. 代码本身是存储在内存的代码段中的,而函数没有说存储的概念,函数调用时是通过栈来实现的。
2.在函数体内声明的变量在默认情况下都是auto存储类型
在代码块之间传递信息的一种方法就是使用外部变量。当一个变量在函数的外部被声明时,安的存储空间是永久分配的,安人存储类型是extren.外部变量的声明看上去和函数或代码块内部所声明的变量一样。外部变量对于它之后的所有函数都有效。在代码块或函数后,外部变量仍然存在。
3.static的基本用途是允许一个局部变量在重新进入代码块时能够保持原来的值。这和自动变量形成了鲜明的对比,自动变量在代码块时会被销毁,再次进入这个代码块时,它必须重新进行初始化。
4.egister存储类型告诉编译器相关的变量应该改量存储在高速度的寄存器中。使用register存储类型的目的一般是为了提高执行速度,但是,register声明只是向编译器所提出的“建议”,并非强制要求。
如果使用的是Dev-C++或者VC++,那么你可以新建一个Static Library工程,并在其中添加相应代码然后编译成*.lib文件,在以后的工程中即可随时引用。
当然如果不是用这类IDE工具的话,你可以将常用函数写到一个头文件(*.h)中,在以后的代码文件中可以直接通过include该头文件来实现代码重用。
以上两种方法都需要被保存的文件(*.lib,*.h)被放在适当目录,一般的编译器都有环境目录的选项,需要在Library Directry及Header Directry中设置一下。当然如果不进行设置也可以,那就需要将这些文件复制到工程所在目录了。
可换成
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)