本帖最后由 vegetablebird 于 2019-4-4 16:43 编辑
想在循环中使用sprintf追加字符串,但是每次只显示最后一次的结果。网上查了一下,sprintf每次都会在结尾加上' ',导致覆盖前一次的内容。现在需要遍历SD卡一个文件夹内所以文件名,并追加到一个字符串,而不是每查一个文件名就发送一次,请问应该怎么做?
[mw_shl_code=c,true]u8 mf_scan_files(u8 * path)
{
FRESULT res;
char *p;
char *fn; /* This function is assuming non-Unicode cfg. */
char *fnn;
#if _USE_LFN
fileinfo.lfsize = _MAX_LFN * 2 + 1;
fileinfo.lfname = mymalloc(SRAMIN,fileinfo.lfsize);
#endif
res = f_opendir(&dir,(const TCHAR*)path); //′ò¿aò»¸öĿ¼
if (res == FR_OK)
{
while(1)
{
res = f_readdir(&dir, &fileinfo); //¶áè¡Ä¿Â¼ÏÂμÄò»¸öÎļt
if (res != FR_OK || fileinfo.fname[0] == 0) break; //′íÎóáË/μ½Ä©Î2áË,íË3ö
//if (fileinfo.fname[0] == '.') continue; //oöÂÔéϼ¶Ä¿Â¼
#if _USE_LFN
fn = *fileinfo.lfname ? fileinfo.lfname : fileinfo.fname;
#else
fn = fileinfo.fname;
#endif /* It is a file. */
printf("%s/", path);//′òó¡Â·¾¶
printf("%s
",fn);//′òó¡ÎļtÃû
p=mymalloc(SRAMIN,32); //éêÇë32×Ö½úÄú′æ
sprintf((char*)p,"%s",fn);
u3_printf(fn);
}
}
myfree(SRAMIN,fileinfo.lfname);
myfree(SRAMIN,p);
return res;
}[/mw_shl_code]
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
可以了,非常感谢!太粗心了,只忙着拷贝过来没有注意好
一周热门 更多>