2 qq 34390984 qq_34390984 于 2016.09.24 17:14 提问

c头文件从命令行接收一个整数,这段代码的问题在哪里

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:");
}

}

2个回答

ah_107
ah_107   2016.09.24 18:05

#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();应该没有影响。

feng1790291543
feng1790291543   Ds   Rxr 2016.09.24 18:08

你得懂switch的用法,里面传的都是 整数,不然都是有问题 的,%c 的字符进入,就呵呵了

Csdn user default icon
上传中...
上传图片
插入图片