char filebuf[256];
path current = current_path();
std::cout<<"CurrentWorking "<<current<<endl;
string _UserDir = "TTiTraceLogs";
sprintf(filebuf,"%s/%s",current,_UserDir); ///crashing here
如果我只格式化current,那就没关系.
sprintf(filebuf,"%s",current);
输出:
CurrentWorking D:/working/eclipse_projects/sadftp/CollectTTiTraceSept10_1009_174
_higher/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/Release
Aas*_*set 17
在标准sprintf()函数(和其他printf()函数)中,说明%s符不适用于C++ strings; 它只适用于C风格的字符串.尝试_UserDir.c_str(),它给你一个const char *指向内部数组,string因此可以用于许多C函数.
如果current_path()返回的东西是不是一个(可能const)指针char或者unsigned char,你需要将该值转换了.