|
我是一个比较有个性的人,所以我总喜欢见到控制台就喜欢乱输入一番,不过这也令我想到:如果我的用户们跟我一样,输入数字的时候输入一些字母、特殊符号的话怎么办。
当然可以用代码:
[mw_shl_code=c,true]int a;
scanf ("%c", &a);
[/mw_shl_code]
的方法令用户不论输入是什么都可以接收到数字,但,有可能是用户不小心打错了,这将求出不一样的结果。所以,我想到了代码:
[mw_shl_code=c,true]
do {
printf ("something.\n");
} while (scanf ("%d", &a) != 1);
[/mw_shl_code]
这个方法不错(自认为),但是为了通用起见,我写一个宏吧(至于到底可不可用就不要刨根了):
[mw_shl_code=c,true]
#define ATOME_INT_INPUT(say,get){\
do {\
printf ((say));\
} while (scanf ("%d", (get)) != 1);
[/mw_shl_code]
但是,它真的不够通用,所以可以很自然地想到:
[mw_shl_code=c,true]
#define INPUT(say,get,n){\
do {\
printf ((say));\
} while (scanf ((get)) != (n));
虽然这看起来比上一个代码乱了那么一点点,但至少是通用的。
看着这个宏,我默默的笑了。
|
|