写入文件时,去除所有的重复信息,然后保存起来。

sdqh002 发布于 2012/03/15 14:22
阅读 424
收藏 0

向一个文件中写入用户名,但不能写入重复的信息。

文件关闭后,重新打开继续写,怎么保证没有和以前记录的重复?

thank you.

加载中
0
鉴客
鉴客

你这是打算写程序来解决呢,还是用什么措施?

0
崔钢
崔钢
把之前的内容放到一个set里面。因为set不允许重复。
0
花花兽
花花兽
先把用户名放到数据库里面,加个唯一,然后从数据库里面取出来放到文件里,根据用户名查到文件里的最后一条数据在数据库里的位置,下次从这里继续取值往文本里写。只是一个想法,不知道怎么样
0
sdqh002
sdqh002
在某处pro(username);

cmp(char *destin,char *source){
if(strcmp(destin,source)==0)
//m_burn(destin,sizeof(source));
memset(destin,0,sizeof(destin));
}
void pro(char *strdes){
FILE *fp;
 char sour[1024];
 char dest[80];
 
 strcpy(dest,strdes);

 if((fp=fopen("/home/working/sbin/name","r"))==NULL){
printf("cannot open the file.\n");
exit(1);
}

 while((fgets(sour,1024,fp))!= NULL)
 {
   cmp(dest,sour);
 }
  printusername(dest);     //使用printusername写到另一个文件
fclose(fp);
}
我是想用pro(username),读取用户名,然后和/home/working/sbin/name中的内容比较,
如果该用户存在,就跳过,如果不存在,写到文件中。
谢谢各位。
0
北落
北落
看见楼主的头像我笑了,跟我以前一个同事很像,一样的猥琐啊
0
sdqh002
sdqh002
胡说,这叫猥琐么。忒不厚道了。。。
0
尤雪萍
尤雪萍
张三     李四        王五      
0
sdqh002
sdqh002

LS水党?

0
周翼翼
周翼翼

这个最直观的做法就是,每次要写入新名字的时候,把文件中的所有名字读出来,放到一个线性结构里(数组,链表都可以),然后在这个线性结构里看看有没有你的新名字.

BTW.这种事情,是不是可以考虑用sqlite这种数据库来做.

0
chester
chester

 

unique

返回顶部
顶部