马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
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);
}
|