C语言对文件的操作
2007-03-05 15:23
351 查看
从事软件开发,经常要用到数据的读写,有时因数据量太小不太好用数据库,这时运用C语言中丰富的文件操作功能是不错的一个选择.
举例说明常用的几种形式:
#include<stdio.h>
#include<vector>
using namespace std;
struct node
{
char name[200];
char password[200];
};
vector<node> head ;
//完成从文件中读取相关的信息
int fileRead(char *filename)
{
if( filename == NULL )
{
printf("当前没有要读写的文件");
return ERROR ;
}
FILE *fp ;
if( (fp = fopen(filename,"rb") == NULL )
{
printf("打开文件失败");
return CANNOTOPENFILE ;
}
while( !feof(fp))
{
node temp;
if(fread(&temp,sizeof(temp),1,fp))
{
head.push_back(temp);
}
}
fclose(fp);
return OK ;
}
int fileWrite(char *filename,node temp)
{
if( filename == NULL )
{
printf("当前没有要写的文件");
return ERROR ;
}
FILE *fp ;
if( (fp = fopen(filename,"w") == NULL )
{
printf("打开文件失败");
return CANNOTOPENFILE ;
}
fwrite(&temp,sizeof(temp),1,fp);
fclose(fp);
return OK;
}
void main()
{
node temp;
strcpy(temp.name,"liubing");
strcpy(temp.password,"liutao");
fileWrite("ls.ls",temp);
fileRead("ls.ls");
vector<node>::itertor p;
for(p = head.begin();p!=head.end();p++)
{
printf("name:%s/npassword:%s/n",
p->name,p->password);
}
}
这样就完成了一个简单的文件读写程序,这个程序有很好的可重用性,我相信以后会经常用到这种形式.
举例说明常用的几种形式:
#include<stdio.h>
#include<vector>
using namespace std;
struct node
{
char name[200];
char password[200];
};
vector<node> head ;
//完成从文件中读取相关的信息
int fileRead(char *filename)
{
if( filename == NULL )
{
printf("当前没有要读写的文件");
return ERROR ;
}
FILE *fp ;
if( (fp = fopen(filename,"rb") == NULL )
{
printf("打开文件失败");
return CANNOTOPENFILE ;
}
while( !feof(fp))
{
node temp;
if(fread(&temp,sizeof(temp),1,fp))
{
head.push_back(temp);
}
}
fclose(fp);
return OK ;
}
int fileWrite(char *filename,node temp)
{
if( filename == NULL )
{
printf("当前没有要写的文件");
return ERROR ;
}
FILE *fp ;
if( (fp = fopen(filename,"w") == NULL )
{
printf("打开文件失败");
return CANNOTOPENFILE ;
}
fwrite(&temp,sizeof(temp),1,fp);
fclose(fp);
return OK;
}
void main()
{
node temp;
strcpy(temp.name,"liubing");
strcpy(temp.password,"liutao");
fileWrite("ls.ls",temp);
fileRead("ls.ls");
vector<node>::itertor p;
for(p = head.begin();p!=head.end();p++)
{
printf("name:%s/npassword:%s/n",
p->name,p->password);
}
}
这样就完成了一个简单的文件读写程序,这个程序有很好的可重用性,我相信以后会经常用到这种形式.