这是前段时间,要对公司的短信发送平台修改时采用的一个方法,把未更新的信息ID号保存在文件中,然后在突然荡机的时候可以对数据进行更新,保证用户不会接收到两条相同的短信,代码如下:
把数据写入文件
// file.cpp : 定义控制台应用程序的入口点。
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
typedef struct node{
int data;
}NODE;
int _tmain(int argc, _TCHAR* argv[])
{
NODE p[50],temp[50],s;
int oldnum=0;
fstream file("data.txt",ios::out);
for(int i=0;i<5;i++)
{
p[i].data=i;
file.write((char *)&p[i],sizeof(NODE));
}
// file.close();如果想连续写数据进入文件,则不要关闭数据流
// file.open("data.txt",ios::out);//这是以写的方式打开文件
file.seekg(0,ios::end);//把文件流的指针定位到文件的最后
for(int i=5;i<10;i++)
{
p[i].data=i;
file.write((char *)&p[i],sizeof(NODE));
}
file.close();
return 0;
}
从文件中读出数据
// file.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <iostream>
#include <fstream>
using namespace std;
typedef struct node{
int data;
}NODE;
int _tmain(int argc, _TCHAR* argv[])
{
NODE p[50],temp[50],s;
int oldnum=0;
fstream file("data.txt",ios::in);
while(1)
{
file.read((char *)&s,sizeof(NODE));
if(!file)
break;
temp[oldnum]=s;
oldnum++;
}
file.close();
cout<<”共有”<<oldnum<<”结构体”<<endl;
for(int i=0;i<oldnum;i++)
{
cout<<temp[i].data<<endl;
}
return 0;
}