2012-11-19 182 views
1

我尝试使用CString::GetAt()_tstoi()CString的最后一个字符转换为int,但编译器返回我error C2065: '_tstoi' : undeclared identifier。我想我必须包括一个头文件,我试过#include "tchar.h"没有成功。错误尝试使用_tstoi

CString str = "something2"; 
    int index = 0; 

    if (!str.IsEmpty()) 
    { 
     index = _tstoi((char*)str.GetAt(str.GetLength() - 1)); 
    } 

编辑:我用VC++ 6.0

+1

那么,从'GetAt'函数开始返回一个_single'char'_而'_tstoi'需要一个C风格的字符串(即'char *')。 –

+0

要将单个字符'c'转换为整数,您可以简单地使用'c - '0''。 –

+0

@JoachimPileborg做到了这一点,但编译器从未到达那里,因为它无法识别'_tstoi'。我尝试过使用'atoi',但是在运行时我想'atox.c'文件。 – MRM

回答

2

VC6下此功能是_ttoi而非_tstoi(仍包含在报头 'TCHAR.H')

+0

使用'_ttoi'在运行时抛出一个'未处理的异常',要求我输入'atox.c'的路径 – MRM

+0

这是由于Joachim之前提到的,'GetAt'返回一个字符并将它转换为字符*。使用'char c = str.GetAt(str.GetLength() - 1);''index = _ttoi(&c);' – Liam

+0

现在没问题,谢谢! – MRM

0

如果这是你应该纠正码它像CString str =“something2”;

+0

对! – MRM