|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
下面是我写的一个把数据写入到文件的程序, 想问一下大家, 你们是怎么写的?是这样的吗?还是有其他更好的方法?
- #include <stdio.h>
- #include <stdlib.h> //exit()函数
- #define LEN 20
- void printf_file(); //打印函数
- void create_file(); //录入数据
- struct student
- {
- char sid[LEN];
- char name[LEN];
- };
- int main()
- {
- int user_choose;
- while(1)
- {
- printf("\n\n");
- printf("1. 打印数据到屏幕\n");
- printf("2. 录入数据到文件\n");
- printf("3. 退出\n\n");
- printf("请选择: ");
- scanf("%d", &user_choose);
- switch(user_choose)
- {
- case 1:
- printf_file();
- break;
- case 2:
- create_file(); //录入数据到文件
- break;
- case 3:
- exit (0); //终止整个程序
- default:
- break;
- }
- }
- return 0;
- }
- //打印数据
- void printf_file()
- {
- //打开文件
- printf("\n\n>>以下为打印的信息<<\n");
- char ch;
- FILE *fp = fopen("fishc.txt", "r"); //以只读方式打开
- if(!fp)
- {
- perror("fishc.txt"); //打印出错信息
- printf("还没有录入任何信息!\n");
- return; //终止这个printf_file()
- }
- while((ch = fgetc(fp)) != EOF)
- {
- printf("%c", ch);
- }
- if(!feof(fp)) //如果到了文件尾, 会返非零, 其他情况返回0
- {
- perror("fishc.txt");
- return;
- }
- //正常退出
- printf("\n");
- }
- //录入数据
- void create_file()
- {
- printf("\n\n");
- //首先打开一个文件
- FILE *fp = fopen("fishc.txt", "a+"); //追加方式打开
- char ch;
- struct student stu;
- if(!fp)
- {
- perror("fishc.txt");
- return; //退出录入
- }
- do
- {
- printf("请输入学号 :");
- scanf("%s", stu.sid);
- printf("请输入姓名 :");
- scanf("%s", stu.name);
- fflush(stdin); //清除缓冲区
- //把输入的信息保存到文件
- fputs(stu.sid, fp); //写入数据
- fputc('\t', fp);
- fputs(stu.name, fp);//写入字符
- fputc('\n', fp);
- printf("还要继续录入数据吗(Y/N):");
- ch = getchar();
- fflush(stdin); //清除缓冲区
- }while(ch == 'Y' || ch == 'y');
- fclose(fp);
- }
复制代码
|
|