文字列を数値に変換

C++で文字列を数値に変換する際、
今までは漠然と

atoi(const char*)
atof(const char*)

を使っていたわけですが。

stdlib.hの
strtol(const char*, char**,int)
strtod(const char*, char**)
を使うと数字以外の文字列が来たらわかっていい感じよ。(もっといい手があるのかも知んないけど)


こんな感じで使用。

char *e; // 数字以外の文字列へのポインタ。エラーチェックに使えます。
long n;

n = strtol("文字列",&e,0);
if(*e != '\0'){
return 1; // 文字列が来たらアウトよ
}