将CString转换为浮点数组

时间:2016-10-24 12:53:22

标签: c++ mfc tokenize

我目前正在与MFC合作构建某个程序,该程序要求用户在CString下面输入一系列数字,如下所示(为简单起见,我们称之为aCString)。

enter image description here

我可以使用'strtok'将字符串或字符数组转换为浮点数组 没有问题。

但我正在努力将CString转换为字符串或字符数组,以便我可以进行前面提到的转换!

- 我试过strcpy

strcpy(my_string, (LPCTSTR)aCString);

但得到了那个错误

  

char * strcpy(char *,const char *)':无法转换参数2   'LPCTSTR'到'const char *'

我很感激帮助!

1 个答案:

答案 0 :(得分:4)

CString类模板提供Tokenize成员,可用于将输入字符串拆分为单个标记。然后可以使用std::stof函数将标记转换为浮点值:

std::vector<float> ToFloats( const CString& numbers ) {
    std::vector<float> buffer;
    int start{ 0 };
    CString token = numbers.Tokenize( _T( "," ), start );
    while ( start != -1 ) {
        buffer.push_back( std::stof( { token.GetString(),
                                       static_cast<size_t>( token.GetLength() ) } ) );
        token = numbers.Tokenize( _T( "," ), start );
    }
    return buffer;
}