社区
C语言
帖子详情
C语言写入文件
luxiliang
2012-03-22 02:13:56
比如:如果向一个文件中写入一个人的信息,包括ID,Name,年龄等三个。
如果要实现当用户输入一个人的信息时,此ID已经存在,则提示“此人信息已存在”。
另外,输入ID后怎么实现查询功能。希望能够有个简单的代码。十分感谢!
我觉得:当用户输入一个信息时,不管是添加还是查询,必须要把原来的所有信息ID和当前输入的信息ID对比,相同则输出这一组的信息,不相同则提示“无此人信息”。就是不知道怎么用代码表示出来。求解!!!
...全文
1479
13
打赏
收藏
C语言写入文件
比如:如果向一个文件中写入一个人的信息,包括ID,Name,年龄等三个。 如果要实现当用户输入一个人的信息时,此ID已经存在,则提示“此人信息已存在”。 另外,输入ID后怎么实现查询功能。希望能够有个简单的代码。十分感谢! 我觉得:当用户输入一个信息时,不管是添加还是查询,必须要把原来的所有信息ID和当前输入的信息ID对比,相同则输出这一组的信息,不相同则提示“无此人信息”。就是不知道怎么用代码表示出来。求解!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
13 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
NeDong
2012-03-22
打赏
举报
回复
用循环单链表保存数据。
输入数据时,把文件中的数据读入链表中,输入的数与链表对比,
查找的时候,把文件数据读入链表,遍历查找就OK了
可以先写一个从文件中读取信息到链表的函数
自信男孩
2012-03-22
打赏
举报
回复
先把文件中的数据读到内存中,然后每次输入都进行遍历和比较。
DNcx831
2012-03-22
打赏
举报
回复
上学期,写过类似的通讯录程序。
下面是一些主要程序的源代码,可能会给你点参考
********************************************
2.1 通讯录文件操作的实现技术
(主要函数及其使用方法)
一.文件的打开:
a.
fp=fopen("d:\\text.txt","wb")
以二进制写入的方式打开D盘跟目录下的text.txt文件
b.
fp=fopen("d:\\text.txt","ab")
以二进制添加的方式打开D盘跟目录下的text.txt文件
c.
fp=fopen("d:\\text.txt","rb")
以二进制读取的方式打开D盘跟目录下的text.txt文件
二.文件的读取:
fread(cardd,sizeof(struct card),100,fp)
把100个名片的内容从文本文件中读取出来,并赋值给cardd的结构数组中
三.文件的写入:
a.
fwrite(&cardd[NUM],sizeof(struct card),1,fp)
把cardd[NUM]中的名片信息写入到fp指针所指向的文件中
b.
fwrite(cardd,sizeof(struct card),100,fp)
把carrd中100个名片信息一起写入到fp指针所指向的文件中
2.2 通讯录内存的表示结构
(结构体、单向链表、指针等)
名片结构体:
struct card
{
char name[11];
char age[4];
char tel[20];
char addr[40];
char email[30];
char val; //名片是否有效,有效为1,无效为0;
int cod_num; //姓的汉字编码号,用于排序
//struct card *next; //指向下一个名片
}cardd[100];
2.3 人机交互的设计技术
(菜单选择、格式化输入输出主要函数等)
主菜单:
void disp_menu()
{
system("cls");
uchar i;
for(i=0;i<20;i++)
printf("*");
printf("\n");
printf("简易手机通讯录v1.0\n");
printf("1-->新建\n");
printf("2-->查询\n");
printf("3-->修改\n");
printf("4-->删除\n");
printf("5-->显示\n");
printf("6-->退出\n");
for(i=0;i<20;i++)
printf("*");
printf("\n");
}
名片格式化输出:
printf("姓名:\t%s\n年龄:\t%s\n电话:\t%s\n地址:\t%s\n邮箱:\t%s\n",cardd[i].name,cardd[i].age,cardd[i].tel,cardd[i].addr,cardd[i].email);
2.4 基于c语言的汉字编码获取
/*************得到姓的汉字编码,用于排序***********/
int coding(char n)
{
int i,j;
unsigned int m=0;
char s[3]={'\0'},ss;
char ch[17]={'\0'};
s[0]=cardd[n].name[0];
s[1]=cardd[n].name[1];
for(j=0;j<2;j++)
{
ss=s[j];
for(i=(j+1)*8-1;i>=j*8;i--)
{
ch[i]=(ss&0x01)+'0';
ss=(ss>>1);
}
}
for(i=15;i>=0;i--)
m+=(ch[i]-'0')*(int)(pow(2,(15-i)));
/*printf("%s\n",cardd[n].name);
printf("%s\n",s);
printf("%s\n",ch);
printf("%d\n",m);*/
return m;
}
汉字有16位,用s[3]的前二位存储,最后一位存储‘\0’;
按位依次读取汉字的位,并存在ch[17]中;
则ch[17]的是二进制的汉字编码,通过
for(i=15;i>=0;i--)
m+=(ch[i]-'0')*(int)(pow(2,(15-i)));
将二进制的汉字编码转化为十进制的并存到m中;
nanjingnew4
2012-03-22
打赏
举报
回复
[Quote=引用 9 楼 luxiliang 的回复:]
你说的我都晓得。。。关键是代码搞不定啊。。
引用 8 楼 nanjingnew4 的回复:
文件格式可以写成这样
ID|名字|年龄
ID|名字|年龄
ID|名字|年龄
类推。。。竖线作为分隔符,方便判断
打开文件用fopen,写文件可以用fprintf,读文件用fgets,关闭文件用fclose.
试着写个吧,思路方法都给你了
[/Quote]
你觉得哪个地方有问题
luxiliang
2012-03-22
打赏
举报
回复
你说的我都晓得。。。关键是代码搞不定啊。。[Quote=引用 8 楼 nanjingnew4 的回复:]
文件格式可以写成这样
ID|名字|年龄
ID|名字|年龄
ID|名字|年龄
类推。。。竖线作为分隔符,方便判断
打开文件用fopen,写文件可以用fprintf,读文件用fgets,关闭文件用fclose.
试着写个吧,思路方法都给你了
[/Quote]
nanjingnew4
2012-03-22
打赏
举报
回复
文件格式可以写成这样
ID|名字|年龄
ID|名字|年龄
ID|名字|年龄
类推。。。竖线作为分隔符,方便判断
打开文件用fopen,写文件可以用fprintf,读文件用fgets,关闭文件用fclose.
试着写个吧,思路方法都给你了
一古清流
2012-03-22
打赏
举报
回复
文件是怎么保存数据的?
如果每条个人信息都是单独的行的话,可以用getline函数
然后再用字符串比较函数查看该行是否已经存在输入的ID
当然每输入一个新的ID都要从文件头到文件尾循环一次
luxiliang
2012-03-22
打赏
举报
回复
不是作业题,因为我不会用数据库。。。[Quote=引用 4 楼 luciferisnotsatan 的回复:]
引用 1 楼 czh3642210 的回复:
我觉得还是用数据库的好。。。
这是很标准的作业题。
[/Quote]
luxiliang
2012-03-22
打赏
举报
回复
额。。求解
luciferisnotsatan
2012-03-22
打赏
举报
回复
[Quote=引用 1 楼 czh3642210 的回复:]
我觉得还是用数据库的好。。。
[/Quote]
这是很标准的作业题。
qixing1115
2012-03-22
打赏
举报
回复
文件操作的东西多看看吧,不难
luxiliang
2012-03-22
打赏
举报
回复
数据库是好啊,不过是想用文件操作实现。呵呵[Quote=引用 1 楼 czh3642210 的回复:]
我觉得还是用数据库的好。。。
[/Quote]
面包大师
2012-03-22
打赏
举报
回复
我觉得还是用数据库的好。。。
C语言
读取文件数据,写入内存
作为一个新手学习
C语言
读写数据,我整合了一下自己查找的一些资料,用
C语言
实现将一个文件读入内存中,里面有运行工具,和一个word文档代码。
C语言
读取和写入dat文件 代码
C语言
读取和写入dat文件 注意路径 简单明了 仅供参考
C语言
学生信息管理系统
课时目录: 1、项目介绍 2、设置控制台光标位置 3、登录界面 4、用户登录操作的三个小界面以及倒计时 5、用户注册操作的三个界面以及倒计时 6、倒计时函数封装 7、用户名密码
写入文件
8、游客、退出、指令有误界面 9...
C语言
读取和写入dat文件
C语言
文件读取和写入。针对dat文件的读写。 注意文件路径。 程序简单明了 供参考
c语言
文件写入格式
本资源为
c语言
的文件写入格式,包括各种写入格式及解释说明及运用
C语言
69,382
社区成员
243,073
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章