四.資料檢驗器
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',則判定資料無效,並提示您輸入的操作不合法。