template< typename T >
T Read( const char* Section, const char* Key )
{
SecureZeroMemory( m_Result, sizeof( m_Result ) );
GetPrivateProfileString( Section, Key, 0, m_Result, sizeof( m_Result ), m_File.FullPath );
std::istringstream Cast( m_Result );
T Result{ };
Cast >> std::noskipws >> Result;
return Result;
}
m_Result是我班级的成员变量。 (char [256])。
目标:尝试返回我在模板arg上插入的所有类型。
问题:当我发送std :: string时:&#34;示例文本返回&#34;它返回我&#34;示例&#34;而不是&#34;示例文本返回&#34;。
错误在哪里?我尝试了很多跳过或者noskipws或ws ......
对不起英语,我是一个巴西人。
答案 0 :(得分:0)
std::noskipws
只读取任何初始空格。 >>
的{{1}}运算符重载始终在第一个遇到的空白字符处停止读取字符串。 std::string
使其读取初始空格,但转换仍然停留在第一个非空白字符后面的第一个空白字符处。
您需要做的是为std::noskipws
专门设置此模板功能,并且只返回std::string
而不进行任何转换。