判断输入是否为整型,请问如何实现?
如下程序,当输入“字母+数字”时没有错误(如m21),“数字+字母”混合时就出现错误(如21m),
int i = 0;
while (1)
{
cin.clear();
cin.sync();
cin >> i;
if (!cin.good()) continue;
if (iChoose < 0 || iChoose > 10) continue;
break;
}
如何修改才能使得输入如21m时能判断输入的类型不是整数型?谢谢!
[解决办法]
你试试类型转换
[解决办法]
用stringstream吧
[解决办法]
仅供参考
#include <stdio.h>int main() { int IP[4]; int i; char c; printf("请输入一个ip地址:"); while (1) { fflush(stdin); if (5==scanf("%d.%d.%d.%d%c",&IP[0],&IP[1],&IP[2],&IP[3],&c)) { if (0<=IP[0] && IP[0]<=255 && 0<=IP[1] && IP[1]<=255 && 0<=IP[2] && IP[2]<=255 && 0<=IP[3] && IP[3]<=255 && '\n'==c) { break; } else printf("输入的ip地址格式不对!\n请重新输入:\n"); } else printf("输入的ip地址格式不对!\n请重新输入:\n"); } for (i=0;i<4;i++) { printf("IP[%d]=%d\n",i,IP[i]); } return 0;}