void main(int argc, char **argv) { std::string filename,strPNG,strTXT; wchar_t InputPath[65535] = L"C:\\MyFolder"; wchar_t szDir[65535]; wchar_t dir[65535]; _WIN32_FIND_DATAW FileData; HANDLE hList; swprintf(szDir, L"%s\\*", InputPath ); hList = FindFirstFileW( szDir, &FileData); SetCurrentDirectory( InputPath ); while(1) { if ( hList == INVALID_HANDLE_VALUE ) { cout << "No files be found.\n\n"; } else { if (!FindNextFile(hList, &FileData)) { if (GetLastError() == ERROR_NO_MORE_FILES) break; } swprintf(dir, L"%s\\%s", InputPath, FileData.cFileName); wprintf( L"%s\n", dir); } } FindClose(hList); }
wsprintf 和 swprintf wsprintf 其實是一個巨集,對應著兩個 Windows API:wsprintfA 和 wsprintfW。最前面的那個w,不是寬字符(wide)的“w”,而是Windows的“w”。 而 swprintf 是 sprintf 的寬字符版,是 C 的標準輸入輸出。而造成這個問題的原因,則在於 Windows 的 wsprintf,並不支援浮點數……
沒有留言:
張貼留言