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条回答
neuangel
1楼-- · 2019-10-12 20:29
正点原子 发表于 2017-2-27 21:53
text_name,申请了内存么?

感谢原子哥回复,已经调通了,开始的时候忘记申请内存了
Rocks
2楼-- · 2019-10-12 23:31
ReadTime[0],ReadTime[1],ReadTime[2],ReadTime[4],ReadTime[5],ReadTime[6]  6???
neuangel
3楼-- · 2019-10-13 02:42
Rocks 发表于 2017-2-21 11:52
ReadTime[0],ReadTime[1],ReadTime[2],ReadTime[4],ReadTime[5],ReadTime[6]  6???

ReadTime[7]={ox17,0x02,0x21,0x11,0x23,0x20,0x02};
最后一位是星期几,没有写上
msq001
4楼-- · 2019-10-13 08:31
定义了指针不用malloc开辟空间就用肯定会死啊,你就直接定义数组好了。
BMN李
5楼-- · 2019-10-13 13:48
 精彩回答 2  元偷偷看……
neuangel
6楼-- · 2019-10-13 18:53
本帖最后由 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);
}
我在函数内加入了这句了,还是不可以呢

一周热门 更多>