https://blog.csdn.net/andeyeluguo/article/details/81086260
在yolo中pdb出现了字符串“name\r”,错误,于是想到去掉字符串中的最后一个字符
- #include "stdio.h"
- #include "malloc.h"
- #include "string.h"
- int main()
- {
- char* s="GoldenGlobalView\r";
- char * d= (char *)malloc((strlen(s)-1)*sizeof(char));
- memcpy(d,s,(strlen(s)-1));
- printf("%s",d);
- free(d);
- return 0;
- }
也可以使用strncpy(dest,src,n),不过貌似memcpy最好。
太麻烦,不过没办法。
在darknet框架src/data.c中
可以重写
- char **get_labels(char *filename)
- {
- char * filename_no_r= (char *)malloc((strlen(filename)-1)*sizeof(char));
- memcpy(filename_no_r,s,(strlen(filename)-1));
- list *plist = get_paths(filename_no_r);
- free(filename_no_r);
- char **labels = (char **)list_to_array(plist);
- free_list(plist);
- return labels;
- }
不过最好的解决方案还是使用notepad更改数据格式改为unix。具体参见yolo栏目。
联系客服