Convert MFC CString to integer
How to convert a CString
object to integer in MFC.
If you are using TCHAR.H
routine (implicitly, or explicitly), be sure you use _ttoi()
function, so that it compiles for both Unicode and ANSI compilations.
More details: https://msdn.microsoft.com/en-us/library/yd5xkb5c.aspx
The simplest approach is to use the atoi()
function found in stdlib.h
:
CString s = "123";
int x = atoi( s );
However, this does not deal well with the case where the string does not contain a valid integer, in which case you should investigate the strtol()
function:
CString s = "12zzz"; // bad integer
char * p;
int x = strtol ( s, & p, 10 );
if ( * p != 0 ) {
// s does not contain an integer
}
CString s;
int i;
i = _wtoi(s); // if you use wide charater formats
i = _atoi(s); // otherwise