查看完整版本: BCB如何判斷輸入數值為數字或字??

neowang31 2009-10-12 01:44 PM

BCB如何判斷輸入數值為數字或字??

請教各位大大,如何判斷我輸入的是數值還是字串|y06|

寫了一個分數的儲存與執行…叫要輸入英文字就跳出錯誤訊息…|y12|

麻煩一下了…謝謝

cheaster 2009-10-12 03:29 PM

利用ASCII來判斷…舊帖你可以找找

netzilch 2009-10-12 04:09 PM

bcb中可以用string的isNumeric檢查

neowang31 2009-10-12 05:07 PM

啊…不好意思…可以說清楚一點嘛…比方說if裡填寫的格式…謝謝囉|y06|

neowang31 2009-10-14 02:15 PM

可能大大覺得我太混了…|y06| ,不過我卡的問題其實是
GuessNum = StrToInt(Edit1->Text);
如何在將字串轉成數字再來判斷。也用過
try
        {
         int num = StrToInt(Edit1->Text);
        }
        catch (...)
        {
         ShowMessage("error");

不過使用之前就會跳出錯誤訊息
不知道有沒有大大推薦一下用法給我參考一下

謝謝|y14|

netzilch 2009-10-14 03:24 PM

在不確定都是數字的前題下,冒然用StrToInt當然會出問題...
你須必須先用isNumeric來判斷,它會傳回一個布林值,至於詳細用法請自行參考手用或help...

neowang31 2009-10-14 05:44 PM

回覆 6# 的帖子

謝謝大大…不過…我一直宣告錯誤|y06|
請問一下builder c++6有這指令嘛…(我有在help裡看到),還是我宣告用法不對|y04|

你看那邊 2009-10-14 10:24 PM

要不就用 c 的 function
IsDigit
IsAlpha

neowang31 2009-10-15 08:45 AM

回覆 8# 的帖子

哈…謝謝大大的建議…我有試過去撰寫,不過不知道是不是我基礎不穩的關係|y06| …卡在字串不知如何轉成整數…因為  IsDigit(int X),必需要一個int判斷|y16| ,失敗的原因也是如我之前的敘述。|y29|

freem 2009-10-15 09:49 AM

輸入英文字就跳出錯誤訊息...........
那麼直接在輸入時就判斷如何 ?!
不要再將字串轉成數字再來判斷.[code]#include <iostream>
using namespace std;

int main(){
   
   int num;
   
   ReTry :
         
   cout << "Please input a number : ";
   cin >> num;
   
   if( cin.fail() ){
      cin.clear();
      cin.ignore( numeric_limits<streamsize>::max(), '\n' );
      cout << "Input data type error ...." << endl;
      system("pause");
      system("cls");
      goto ReTry;
   } else cout << "======>" << num << endl;

   system("pause");
   return 0;
}[/code]ps.
我使用的是 Dev C++ 不知是否適用 BCB ?

neowang31 2009-10-15 10:31 AM

回覆 10# 的帖子

謝謝freem大的指教了…大大指出了一個問題了(輸入採用 int num;)

but  BCB的輸入是用num = StrToInt(Edit1->Text);|y06|
(在Edit1填數值將字串轉成int丟進num裡)

當然…可能小弟學藝不精…|y09| ,抓不到處理的方法,所以請各位大大指教一下了…|y08|

neowang31 2009-10-15 02:53 PM

回覆 11# 的帖子

總算把問題解決了…謝謝版上各位大大熱情的回應小弟|y06|

小弟使用的是TryStrToFloat的指令,寫法如下給需要的人參考|y12|
float w;
if ( TryStrToFloat ( Edit1->Text , w )==true)
         {
          GuessNum = StrToInt(Edit1->Text);
         }
       else
             {
                ShowMessage("輸入非數字");
              Edit1->Clear( );
             }
        以上|y07|
頁: [1]
查看完整版本: BCB如何判斷輸入數值為數字或字??