c - C编程中如何检查输入是否等于预设值?

标签 c codeblocks

我正在编写一个允许某人登录的程序。但是当我输入的id和密码等于预设值时,我无法使其打印成功登录。

int main()
{
 int id,pass,idC=0,passC=0,i,myid,mypass,tries=1;
 myid = 10082612;
 password = 123456;

 printf("**LOG IN**\n\n");
 printf("ID: ");
 scanf("%d", &id);
 printf("Password: ");
 scanf("%d", &pass);

 while(id != 0){
    id /= 10;
    idC++;
 }

 while(pass!= 0){
    pass /= 10;
    passC++;
 }

 if(idC==8 && passC ==6 || idC==7 && passC==6){
    if(id==myid && pass==mypass){
        printf("Successfully Login");
    }
    else{
        printf("Unknown ID");
    }
 }
 else if(idC!=8 && passC==6 || idC!=7 && passC==6){
    printf("The Student ID should be in 7 or 8 digits, please try again");
 }
 else if(idC==8 && passC!=6 || idC==7 && passC!=6){
    printf("Please enter a 6-digit pin");
 }


}

这是我写的。

最佳答案

您应该将 idC 和 passC 初始化为 1,因为对于 8 位数字,循环只有 7 次为真,依此类推。

int idC = 1,passC = 1;

关于c - C编程中如何检查输入是否等于预设值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46525434/

相关文章:

CodeBlocks 在修改代码后不刷新我的程序

c - 如何在c中获取asm函数的地址

c++ - 如何在 Windows 上的 CodeBlocks 中构建和配置 boost.thread

php - 以 K 为单位计算色温

c# - 在 C# 中编码 C 结构

c++ - Assimp 无法在 Code::Blocks 中正确构建 - "TVITEMEXW not declared in current scope"

c - fread 读取超过文件末尾

c++ - 无法识别的命令行选项 '-std=c++11'

c++ - 在C++程序中使用C函数; "multiply-defined"错误

C - 为什么 atoi