没有从“int”到“char[100]”的转换

#include<stdio.h>
#include<iostream>
#include<fstream>
#include<bitset>
int main() {
    char ud[100], cd[100];
    std::cout << "注册账号:";
    std::cin >> std::hex >> ud;
    std::cout << "注册密码:";
    std::cin >> std::hex >> cd;
    if(ud > 0xffffff, cd > 0xffffff){
        system("cls");
        char id[100], mima[100];
        std::cout << "账号:";
        std::cin >> id;
        std::cout << "密码:";
        std::cin >> mima;
        if (id == ud, mima == cd) {
            system("cls");
            std::cout << "\n\n\n\n        开始游戏";
        }
        else{

        }
    }
    else {
        return 0;
    }
}

都c++了建议直接用string类啊,为什么还要用char[]来模拟字符串?而且char数组比较不能用==吧,要上strcmp()。

1. ud 和 cd 都是 char[100] , 没法直接和 0xffffff 比较,应该改为:

  • int ud, cd;
  • int id, mima;

2. ` if(ud > 0xffffff, cd > 0xffffff){` 这个比较语义不明。

  • if 里面是一个逗号表达式,逗号表达式的值是最后一个表达式的值。
  • 你是否想写的是` if(ud > 0xffffff && cd > 0xffffff){` ?