{ CString num; m_ed.GetWindowText(num); if(isdigit(atoi(num))==0){ MessageBox("数字を入力せよ"); m_ed.SetWindowText(" "); } }エデットボデックスに入力した文字列が数字じゃなければエデットボックスの中身を空にするという
簡単なプログラムですが・・例えば6を入れた場合numの中身は"6"でatoiの戻り値は6になっております。
しかしisdigitの戻り値は0になります。 何故でしょうか?
{ CString num; m_ed.GetWindowText(num); if(isdigit(static_cast<unsigned char>(num[0]))){ MessageBox("数字を入力せよ"); m_ed.SetWindowText(" "); } }
{ CString num; m_ed.GetWindowText(num); if(!isdigit(static_cast<unsigned char>(num[0]))){ MessageBox("数字を入力せよ"); m_ed.SetWindowText(" "); } }