如果在main函数中忽略了语句

时间:2015-05-01 14:21:08

标签: c if-statement fgets

我目前正在用C语言编写代码,并且忽略了main函数中的if语句。如您所见,此代码接收一些字符串作为输入并应用Caesar的密码。注意:在main中调用的函数加密也是定义的,我只是不粘贴,因为我不认为这是必要的,因为问题是当我问用户是否要加密或解密文本时,fgets if if语句被完全忽略(写入“加密”后程序退出)。 代码如下:

int main()
{
    char text[SIZE], choice[SIZE];
    printf("\nWelcome to Caesar's Cipher.\nDo you wish to encrypt or decrypt text?\n");
    fgets(choice, SIZE, stdin);
    if (strcmp(choice, "encrypt") == 0)
    { 
        printf("Insert text to encrypt:\n");
        fgets(text, SIZE, stdin);
        ciphering(text);
        printf("\nThis is your text encrypted with Caesar's Cipher:\n%s\n", text);
    }
    return 0;
}

1 个答案:

答案 0 :(得分:4)

fgets得到的字符串最后有一个尾随\n。您需要手动删除它,或将其与"encrypt\n"

进行比较