여기서 내가 뭘 잘못 했습니까?경로에서 파일 이름을 반환하십시오.
전화
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
}
, 그러나 가능 fputs 또는 풋, 또는'의 printf ("% s '에, EXENAME)'. –
@WilliamPursell 그 이유를 다시 상기시켜 주시겠습니까? –
파일 이름에 포맷팅 문자가 포함되어 있으면 잘못된 결과가 발생합니다. 이것은 아마도 귀하의 경우에는 문제가되지 않지만 필요하지 않을 때 문자열을 구문 분석하는 것은 낭비입니다. –