gpt4 book ai didi

C++ 字符或逻辑运算符?如果正确,为什么需要 else{...} ?

转载 作者:太空宇宙 更新时间:2023-11-03 10:33:24 24 4
gpt4 key购买 nike

        #include <iostream>

int main()
{
char username[15];
char password[15];


std::cout << "Hello, please login to continue your action.<Max 15 Char>" << std::endl;
std::cout << "Username: ";
std::cin >> username;
std::cout << "Password: ";
std::cin >> password;

if (username == "User" && password == "qwerty")
{
std::cout << "Hello, creator.";
}
else
{
std::cout << "Invalid Login";
}
/*23 row*/ std::cout << std::endl << std::endl << "Username=" <<username << std::endl << "Password=" << password;

std::cout << std::endl << std::endl << "Press Enter to close the window . . . ";
std::cin.clear();
std::cin.sync();
std::cin.get();
}

当我输入正确时,它应该说 Hello Creator,但它只是无效,我想也许 char 只存储 1 个字符,这就是为什么在第 23 行我查看了 char 用户名和密码中存储的内容,但一切都很好。那为什么要用 Else {...} 语句呢?

最佳答案

C++ 中有两种类型的字符串。您用于 usernamepassword 的类型是 old-style C strings .它们基本上是内存中的一系列字符,以特殊字符 '\0' 结束。由于它们来自旧 C,因此您不能对它们使用比较或赋值运算符。

要比较两个旧式 C 字符串,您必须使用 strcmp功能:

if (strcmp(username, "user") == 0)
{
// username == "user"
}

更好的解决方案是使用新的 C++ 字符串类:std::string相反,因为它内置了更多功能。例如处理比较。

关于C++ 字符或逻辑运算符?如果正确,为什么需要 else{...} ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9657969/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com