有把结构体直接转换成字符串的方法吗? 我有一个结构体想把它写到文件中去,有不有办法直接把这个结构体转换成字符串(我想只有字符串类型才能写到文件吧),谢谢. 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以用char *强制类型转换。比如struct Node{int nCout;char szStr[16]};Node node;memset(&node, 0, sizeof(Node));node.nCount = 1;strcpy(node.szStr, "str");char *pszStr = (char *) &node;// 如果想再转换过来......Node *node1 = (Node *)pszStr;TRACE("%d; %s;\n", node1->nCount, node1->szStr); 不要这样保存文件!最好每个结构写个函数!如下:struct Node{int nCout;char szStr[16];void Write2File(FILE * fp){ fprintf( stream, "%d %s", nCout, szStr ); }}; 读写的时候,会自动移动文件指针位置的。不过要注意格式,不能乱了,也就是最基本的printf和scanf格式! to fisker0303(Thinking In Love)我用的正好就是1字节对齐,正是太好了.struct MyStruct{ long ID; TCHAR szName[20];};我还想问一下,我存在文件中的是结构数组,比如说数组大小为100个我修改或读取第30个的szName,移动指针的方法是不是先移到第30个,cfile.Seek(sizeof(struct MyStruct)*30, CFile::begin );然后再移到szName,cfile.Seek(sizeof(long), CFile::current);然后就是修改了,该怎么修改呢,CFile好像没有这样的方法(不是先删除再增加吧)谢谢 TCP协议栈自动维护发送发送缓冲吗? 窗口最大化,程序终止 CComBSTR内存泄漏问题 急!请问在vc.net中为什么找不到iostream.h这个头文件了? 关于虚拟列表使用的小问题,急~ 我的网卡是不是有问题?无法自动取得router所分配的IP,但通过指定IP却可以上网,没有问题? 一个简单的问题,在线等着呢 关于CImage类里的Load()函数 如何拦接键盘输入并替换成别的字符输入到程序中,比如word.最好能给出例子!谢谢 vc2008win32程序如何添加消息响应 自定义CallBack函数,调用者立即返回 CListCtrl::InsertGroup()函数的问题,晕了
比如
struct Node{
int nCout;
char szStr[16]
};Node node;
memset(&node, 0, sizeof(Node));
node.nCount = 1;
strcpy(node.szStr, "str");char *pszStr = (char *) &node;
// 如果想再转换过来......
Node *node1 = (Node *)pszStr;
TRACE("%d; %s;\n", node1->nCount, node1->szStr);
int nCout;
char szStr[16];
void Write2File(FILE * fp)
{
fprintf( stream, "%d %s", nCout, szStr );
}
};
不过要注意格式,不能乱了,也就是最基本的printf和scanf格式!
我用的正好就是1字节对齐,正是太好了.struct MyStruct
{
long ID;
TCHAR szName[20];
};
我还想问一下,我存在文件中的是结构数组,比如说数组大小为100个
我修改或读取第30个的szName,
移动指针的方法是不是先移到第30个,cfile.Seek(sizeof(struct MyStruct)*30, CFile::begin );
然后再移到szName,cfile.Seek(sizeof(long), CFile::current);
然后就是修改了,该怎么修改呢,CFile好像没有这样的方法(不是先删除再增加吧)谢谢