我在这里做错了什么?从路径返回文件名
呼叫
printf(filename(exename));
我的函数返回的文件名
const char* filename(const string& str)
{
const char* path;
size_t found;
found=str.find_last_of("/\\");
path = (str.substr(found+1)).c_str();
cout << str.substr(found+1); // ------------> is name ok
printf("\n\n");
printf(path); // ------------> is name not ok random numbers
printf("\n\n");
return path; // ------------> is not ok random numbers
}
你不应该在这里的printf使用,但还是的fputs看跌期权,或可能'的printf( “%S”,EXENAME);'。 –
@WilliamPursell你能提醒我为什么又是这样吗? –
如果文件名包含格式化字符,就会发生不好的事情。这在你的情况下可能不是问题,但当不需要时解析字符串是浪费的。 –