int GetInteger(void)
{
string line;
int value;
char termch;
while(TRUE)
{
line=GetLine();
switch (sscanf(line,"%d %c",&value,&termch))
{
case 1:
FreeBlock(line);
return (value);
case 2:
printf("Unexpected character:'%c'\n",termch);
break;
default:
printf("Please enter an integer\n");
break;
}
FreeBlock(line);
printf("Retry:");
}
}
#include
#include
#include
using namespace std;
int main(void)
{
char line[10];
int value;
char termch;
while (1)
{
cin.getline(line,10);
switch (sscanf(line, "%d %c", &value, &termch))
{
case 1:
return (value);
case 2:
printf("Unexpected character:'%c'\n", termch);
break;
default:
printf("Please enter an integer\n");
break;
}
printf("Retry:");
}
return 0;
}
我测试并未加入FreeBlock();应该没有影响。
你得懂switch的用法,里面传的都是 整数,不然都是有问题 的,%c 的字符进入,就呵呵了