お世話になります。
2003.net MFC ダイアログベースで開発しています。
テキストボックス(エディットコントロール)に8桁の数値(年月日)を入力し、
OKボタンクリックで年月日チェックをしたいと思っています。
そこでアドバイスをいただきたいのですが、
CString型で入力内容を取得したあと
(8桁入力されている事が前提で)文字列を4・2・2へばらばらにし、
数値へ変換するにはどうすればよいのでしょか?
CString str;
int year;
int mouth;
int day;
m_edit.GetWindowText(str); //m_editは年月日が入力されている
//テキストボックスのコントロール変数
****ここでばらばらにし、数値へ変換したい****
年月日チェックをする
初歩的な質問でお恥ずかしいのですが、よろしくお願い致します。
> (8桁入力されている事が前提で)文字列を4・2・2へばらばらにし
_stscanfとか。
if ( _stscanf( str, _T( %4d%2d%2d ), &year, &month, &day ) == 3 )
{
// 年月日チェックをする
}
または、CStringクラスのMidメソッドで文字列で分割してatoiやstrtolで変換とか。
一応参考にしてみてください。
http://hpcgi1.nifty.com/MADIA/Vcbbs/wwwlng.cgi?print+200605/06050060.txt
さっそくのご回答ありがとうごあいます。
参考の方も見て勉強させていただきます。
ありがとうございました。