用于在参数内接收有效整数的函数

时间:2017-03-25 17:17:07

标签: c function

我一直在编写两个函数,第一个函数从用户接收一个有效的整数,如果整数后跟一个字符,则输出和错误消息。除了为每个无效字符输出错误消息外,该功能还按预期工作。但是,使用我的第二个函数,我试图让第一个函数的整数检查自己对第二个函数的参数,但我遇到了分段错误,所以我不确定我哪里出错了。如果输入的整数在最大和最小限制范围内,第二个函数基本上只允许用户继续,尽管此时没有指定这些限制。

这是我的代码:

#include <stdio.h>
#include <stdlib.h>      

int main(void){
    int iVal;
    double dVal;
    welcome();
    printTitle();
    double grandtotal = 1234.57;
    printFooter(grandtotal);
    flushKeyboard();
    pause();
    getInt();
    getIntLimited(int lowerLimit, int upperLimit);

    return 0;
}


 void flushKeyboard(void)
{
    int read;

    while (( read = getchar()) != '\n')
    return;
}

void pause(void)
{
    printf("Press <ENTER> to continue...\n");
    flushKeyboard();
    return;
}



int getInt(void)
{
    int validInt;
    char NL = 'x';

    while (NL != '\n') {
            scanf("%d%c", &validInt, &NL);

    if (NL != '\n') {
            flushKeyboard();
            printf("Invalid integer, please try again: \n");
        }
    }
    return validInt;
}

int getIntLimited(int lowerLimit, int upperLimit)
{
    int limit;
    do {

            limit = getInt();

            if(lowerLimit > limit || limit > upperLimit) {
                    printf("Invalid value, %d < %d < %d: ", lowerLimit, limit, upperLimit);
            }
    }

            while(lowerLimit < limit && limit < upperLimit);
    return limit;

}

0 个答案:

没有答案