回 帖 发 新 帖 刷新版面

主题:使用sprintf问题

我在格式化结构体变量成员时用sprintf,例如
struct MSGHEADER{
    char MsgLength[4];//
    char MsgType[4];//
    char MsgFromNo[4];//
    char MsgToNo[4];//
    char MsgDateTime[14];//
    char MsgFee[4];//
};
当格式化完某一成员后,其后一个成员的第一个字符总为空,但在格式化之前是有值的(第一个字符不为空)。
有哪位GGJJ帮忙解决一下?
谢谢...

回复列表 (共3个回复)

沙发

不是很明白楼主的意思?

板凳

最好给出你格式化的程序,我觉得是你格式化时赋的值长度大于该成员的长度,所以只能把值赋到了下一个成员,应该是这个原因

3 楼

问题解决了,原因是sprintf之后,该变量自动加上空格,所以若成员变量刚好的话,要借助中间变量。
当然把成员变量的字节加1也行。呵呵

我来回复

您尚未登录,请登录后再回复。点此登录或注册