内存地址写入输出文件

zengfenfei 2009-10-09 09:06:18
在C++中内存地址可不可以写到文件中,下次再从文件中读取?
...全文
128 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
cphj 2009-10-11
  • 打赏
  • 举报
回复
输出输入给你写一块儿了,自己挑
指针不方便直接读写,用int转一下
注意读写代码必须在一个进程里面,否则地址无效
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
int n;
int *p1 = &n;
ofstream out("record.txt");
if(!out) { cout <<"fail" <<endl; return 1;}
out << (int)p1;
out.close();

int m;
ifstream in("record.txt");
if(!in) { cout <<"fail" <<endl; return 1;}
in>>m;
int * p2 = (int *)m;
return 0;
}
zengfenfei 2009-10-10
  • 打赏
  • 举报
回复
我是新手可以写出代码吗?谢谢
v2002750 2009-10-10
  • 打赏
  • 举报
回复
用fscanf格式化读取,里保存的时候用什么格式,读取的时候就用什么格式
zengfenfei 2009-10-10
  • 打赏
  • 举报
回复
输出我写在另一个程序,我是想让这个程序读取文件中内存地址。
Apple_Demo 2009-10-10
  • 打赏
  • 举报
回复
不错。
cphj 2009-10-10
  • 打赏
  • 举报
回复
更正
cout<<p<<endl;
改为
out<<p<<endl;
cphj 2009-10-10
  • 打赏
  • 举报
回复
流的类型错了,输出是ofstream
#include <iostream>
#include <fstream>
using namespace std;

int main()
{
int n;
int *p = &n;
ofstream out("record.txt");
if(!out) { cout <<"fail" <<endl; return 1;}
cout<<p<<endl;
return 0;
}
zengfenfei 2009-10-09
  • 打赏
  • 举报
回复
从文件中读内存地址我是这样写的,出现了编译错误,我是新手,请问应该怎样改?
int *p1,*p2;
ifstream in("record.txt");
if(!in) { cout<<"fail"<<endl; return 1;}
in>>p1>>p2;
xingzhe2001 2009-10-09
  • 打赏
  • 举报
回复
在一个进程的生命期里,如果你保存的地址指向的内容还有效,那么可以。
如果你在一个进程把地址保存在文件中,然后重启进程,读取地址,那么结果就不一定对了,因为那个地址指向的内容可能是无效的。

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧