sprintf()函数 用法问题

2019-10-12 14:47发布

本帖最后由 neuangel 于 2017-2-21 11:59 编辑

这样使用sprintf 问题出在哪里?

  ReadTime[7],这个我通过时钟电路得到的时间信息,
我想要的结果是,将时间信息转化为字符串,然后作为创建文件的 文件名
char  *text_name;
ReadTime[7]={ox17,0x02,0x21,0x11,0x23,0x20,0x02};

void name_creat_txt(char  *name,u8 year,u8 mouth,u8 day,u8 hour,u8 min,u8 second )
{
//        sprintf (name, "0:\%.4d%.2d%.2d%.2d%.2d%.2d.txt", year,mouth,day,hour,min,second);
        sprintf (name, "0:\%04x%02x%02x%02x%02x%02x.txt", year,mouth,day,hour,min,second);
}




name_creat_txt(text_name,ReadTime[0],ReadTime[1],ReadTime[2],ReadTime[4],ReadTime[5],ReadTime[6] );

目前,程序一直卡在这段话,求指点,或者有其它办法,谢谢

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
hgr211
1楼-- · 2019-10-13 22:05
我没看错吧,ox17。。。。。。ooo
msq001
2楼-- · 2019-10-14 02:35
neuangel 发表于 2017-2-21 18:58
void name_creat_txt(char  *name,u8 year,u8 mouth,u8 day,u8 hour,u8 min,u8 second )
{
        name= ...

.................
子函数别修改,char  *text_name=malloc(size);
msq001
3楼-- · 2019-10-14 07:06

本帖最后由 neuangel 于 2017-2-21 18:59 编辑


void name_creat_txt(char  *name,u8 year,u8 mouth,u8 day,u8 hour,u8 min,u8 second )
{
        name=(u8 *)mymalloc(SRAMEX ,1024);//内存申请
//        sprintf (name, "0:\%.4d%.2d%.2d%.2d%.2d%.2d.txt", year,mouth,day,hour,min,second);
        sprintf (name, "0:\%04x%02x%02x%02x%02x%02x.txt", year,mouth,day,hour,min,second);
        myfree(SRAMEX,name);
}
你这个改过之后应该不是死在sprint里面,而是死在你用text_name 的地方。
neuangel
4楼-- · 2019-10-14 08:33
 精彩回答 2  元偷偷看……
hgr211
5楼-- · 2019-10-14 14:23
oooo,00000,我也不清楚,你有没有错
neuangel
6楼-- · 2019-10-14 15:20
可能是我使用指针有问题,我改成char  text_name[100]={0};以后,不使用指针就好了,再继续修改,等对了再说

一周热门 更多>