执行程序时出错

时间:2014-09-16 03:57:33

标签: c switch-statement codeblocks fflush puts

我在Codeblocks中执行此代码时遇到了一些麻烦。当我运行代码时,它会一直运行,直到scanf行发生错误并停止代码运行。

#include <stdio.h>
#include <ctype.h>

int main(){
    char lower, upper, option;

        puts("Type '.' to end the program.");
        printf("U-to upper\nL-to lower\n");
        fflush(stdin);
        scanf("%c", option);
        switch(option){
            case 'u':
            case 'U':
                do{
                    fflush(stdin);
                    lower=getchar();
                    upper=toupper(lower);
                    putchar(upper);
                }while(lower!='.');
                break;
            case 'l':
            case 'L':
                do{
                    fflush(stdin);
                    upper=getchar();
                    lower=tolower(upper);
                    putchar(lower);
                }while(upper!='.');
                break;
        }
    return 0;
}

1 个答案:

答案 0 :(得分:0)

更改行scanf("%c", option);,如下所示,

scanf("%c", &option);

现在程序运行正常。 %c 需要&amp;