資料檢驗器

ighshssjjsjs發表於2024-05-30

四.資料檢驗器
uoj的資料檢驗器(val.cpp)使用testlib。

下面是A+B Problem的檢驗器:
#include "testlib.h"
using namespace std;

 int main(void)
 {
   registerValidation();

inf.readInt(0,1000000000,"A");
inf.readSpace();
inf.readInt(0,1000000000,"B");
inf.readEoln();

inf.readEof();
 return 0;
}

上面的程式碼是這樣工作的:

registerValidation():初始化。
inf.readInt(0,1000000000,"A"):讀入叫做“A”的整形變數,範圍必須在[0,1000000000]以內。如果不滿足要求,則判定資料無效。
inf.readSpace():讀取一個空格。
inf.readEoln():讀取一個換行符。
inf.readEof():讀取檔案結束符。
上面的讀取中,只要有任意一個出現了偏差,則判定資料無效。

如果資料需要保證某個要求,可以使用ensuref():

ensuref(cmd=='Q' || cmd=='A' || cmd=='C' , "您輸入的操作不合法");

在上面的程式碼中,如果cmd既不是'Q',也不是'A'或'C',則判定資料無效,並提示您輸入的操作不合法。

相關文章