我现在在做一个语音信箱的项目 对每个用户都在指定目录下建立一个文件夹,同时新建一个文本文件,文本文件里面存放用户的新留言及历史留言的文件名称及数目,这样,每次操作都要涉及到对文本文件的读数据和写数据,首先文本的初始化,用char *initialization = "RecordFile1 = 0\r\nRecordFile2 = 0\r\nRecordFile3 = 0" FILE *fp fp = fopen("E:\\record\\record.ini","wb+");
fputs(initialization,fp);这样。然后读数据就是
char *delim=" =\r\n";
char tmp[256];
char n[3][20];
char *p;
FILE *f=fopen("E:\\record\\record.ini","rt+");
while(fgets(tmp,256,f))
{p=strtok(tmp,delim);
if( p == NULL){}
else if(strcmp(p,"RecordFile1") == 0)
{
if((p = strtok(NULL,delim)) != NULL)
{
strcpy(n[0],p);
}
}
}
fclose(p);
printf("%s",n[0]);
这是读取相应的项的数据,但是我在往里面更改写数据的时候遇到了麻烦,用C的文件操作fwrite,fputs好象都不能。就像我的文本内容是
RecordFile1 = hello
RecordFile2 = hey
我能读出hello和 hey,但我没有办法把他们改成
RecordFile1 = china
RecordFile2 = shenzhen
求大侠支招,小弟感激不尽!!!!!
fputs(initialization,fp);这样。然后读数据就是
char *delim=" =\r\n";
char tmp[256];
char n[3][20];
char *p;
FILE *f=fopen("E:\\record\\record.ini","rt+");
while(fgets(tmp,256,f))
{p=strtok(tmp,delim);
if( p == NULL){}
else if(strcmp(p,"RecordFile1") == 0)
{
if((p = strtok(NULL,delim)) != NULL)
{
strcpy(n[0],p);
}
}
}
fclose(p);
printf("%s",n[0]);
这是读取相应的项的数据,但是我在往里面更改写数据的时候遇到了麻烦,用C的文件操作fwrite,fputs好象都不能。就像我的文本内容是
RecordFile1 = hello
RecordFile2 = hey
我能读出hello和 hey,但我没有办法把他们改成
RecordFile1 = china
RecordFile2 = shenzhen
求大侠支招,小弟感激不尽!!!!!
解决方案 »
- vc++ 数据库代码问题
- 新手关于windows系统的结构问题
- 请教一下VC中以LP开头的数据类型的疑问。
- 小问题-关于EDIT控件只读显示
- (50分) 到 底 如 何 检 测 一 个 目 录 是 否 可 写 啊 ?(如CDROM的目录就不可写)(50分)
- 如何实现SDI程序,全屏。
- (HOOKDLL.DLL): 0xC0000005: Access Violation是什么问题???
- 我想学VC,是基于WIN2000好,还是WIN98好呢??
- 我用AfxGetMainWnd()->GetMenu()为什么得不到菜单?
- 大家都拿VC来写那方面的东西比较多?
- C++中Sleep(timer)最长能Sleep多长时间啊?
- vector ?
1、搜索第三方的辅助类。网上搜吧,我也不知道哪儿有。
2、使用INI文件。
3、使用一些小型数据库,比如sqlite等。
4、每次更改时整个文件重新写一次。