我在這裏做錯了什麼?從路徑返回文件名
呼叫
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你能提醒我爲什麼又是這樣嗎? –
如果文件名包含格式化字符,就會發生不好的事情。這在你的情況下可能不是問題,但當不需要時解析字符串是浪費的。 –