我很困惑这不好笑。
使用VS2012,控制台项目,配置中的字符集设置为unicode。
该文件采用UTF8格式。
我将std::ifstream
加载到std::string
的向量中。 BOM也会得到处理,调试器中显示的字节与文件中的字节匹配。
我该如何将此字符串打印到控制台?
此行printf( "%s\n", line.c_str() );
仅打印垃圾。
没什么特别的。这是完整的代码:
std::string line;
std::ifstream file( fullpath );
if( file == NULL )
{
printf( "Error opening file\n" );
return;
}
file.seekg( 3, file.beg );
while( std::getline( file, line ) )
{
printf( "%s\n", line.c_str() );
}