有一道题说自己编写一个dat格式的消费记录,将记录读出来后构造成链表,进行其他消费后,再放入一个新的文件中.
问题一:这个原来的dat文件需要是已经在之前通过C语言形成的链表数据吗?
问题二:是的话,如何提取出来,提取出来后就已经是链表?不是的话,应该怎么构造?
问题三:最后形成的dat文件是不是以链表形式保存?
如果原来数据格式是:
20140216,20140216,50,349.16
20140218,20140325,32.16,317
怎么构造链表(原本是和不是的都说一下吧,谢谢)
#include
#include
#include
using namespace std;
struct TT //创建一个结构体
{
string date; //定义字符串变量
struct TT *next; //下一个节点
};
void main()
{
ofstream ofile("AA.txt",ios::out);//以只写的方式打开AA.txt
TT *a,*hear; //定义结构体指针变量
a=hear=new TT; //向系统申请一个TT结构体大小的内存空间,a和hear所占的空间大小一样
a->date="20140216,20140216,50,349.16";//赋值
a=a->next=new TT;//a指针,指向下一个节点
a->date="20140218,20140325,32.16,317";
a->next=NULL;//最后一个节点赋值为空节点
a=hear;//a指针指向头节点
while(a)
{
ofiledate;//将数据写入文件
a=a->next;//a指向下一个节点
}
delete a;//释放a的内存
ofile.close ();//关闭文件指针
}
那你这个读出来后怎么对数据进行处理呢 ??
追答刚才那个代码是写入文件的;
现在这个是读出文件的;(就是用刚才的改出来的)
上面的代码有一个小错误,你先改一下,在
while(a)
{
改: //ofiledate;//将数据写入文件
ofiledatenext;//a指向下一个节点
}
后面漏了一个空格!
#include
#include
#include
using namespace std;
struct TT //创建一个结构体
{
string date; //定义字符串变量
struct TT *next; //下一个节点
};
void main()
{
ifstream ifile("AA.txt",ios::in);//以只读的方式打开AA.txt
TT *a,*hear; //定义结构体指针变量
a=hear=new TT; //向系统申请一个TT结构体大小的内存空间,a和hear所占的空间大小一样
a=a->next=new TT;//a指针,指向下一个节点
a->next=NULL;//最后一个节点赋值为空节点
a=hear;//a指针指向头节点
while(a)
{
//for(int i=0;i>a->date;//将数据读出,赋值给a->date
a=a->next;//a指向下一个节点
}
a=hear;//a指针指向头节点
coutdatenext;
coutdate<<endl;
delete a;//释放a的内存
ifile.close ();//关闭文件指针
}