我有一个程序,它获取目录列表(由用户选择),并写入与该目录相关联的目录和文件列表。但是,当打印到文件时,它总是输出一个“?”然后是一个随机的角色。我的工作是维纳比,视觉c++ 2010快车。我也使用unicode (所以我使用的是宽字符)。我猜我的问题在于我使用的fwprintf函数,因为它向我的std::list添加了正确的目录/文件。这是我目前的职能:
// global list for testing
std::list<std::wstring> lDirectories;
void CleanupContents( const wchar_t *sDir )
{
ListDirectoryContents( sDir ) // function that adds each file and directory to the std::list
wchar_t dir[ MAX_PATH * 10 ];
wsprintf( dir, L"%s\\ListOfFilesAndDirectories.txt", sDir );
FILE* pFile;
errno_t err = _wfopen_s( &pFile, dir, L"w" );
while( !lDirectories.empty() )
{
fwprintf( pFile, L"%s", lDirectories.front() );
lDirectories.pop_front();
}
err = fclose( pFile );
}发布于 2014-02-18 02:53:20
问题就在这一行上:
fwprintf( pFile, L"%s", lDirectories.front() );fwprintf需要一个wchar_t*,而您提供一个wstring。
改为:
fwprintf( pFile, L"%s", lDirectories.front().c_str() );https://stackoverflow.com/questions/21843305
复制相似问题