sách gpt4 ăn đã đi

Chuỗi C++ != chuỗi

In lại 作者:搜寻专家 更新时间:2023-10-30 23:58:42 27 4
mua khóa gpt4 giày nike

我刚刚开始使用 C++ 并且对 C# 有一些经验,所以我有一些一般的编程经验。然而,似乎我马上就被击落了。我试过在谷歌上寻找,以免浪费任何人的时间,但没有结果。

int main(int argc, char *argv[])
{
HANDLE hConsole;
int k = 5;
string h;
string password = "pass";

hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsole, k);
SetConsoleTextAttribute( GetStdHandle( STD_INPUT_HANDLE ), 0x5B );

while (h != password)
{
printf("This PC is locked\nEnter the password to gain access\n");
scanf("%s", &h);
}

inf("\n");
system("PAUSE");
trả về EXIT_SUCCESS;
}

每当我运行它时,它都会让我输入密码,当我点击回车时,它会确认,然后崩溃,要求我调试或向 Microsoft 发送信息。这是在我添加 while 循环检查两个字符串时开始的。我是否正确执行了此操作,还是遗漏了什么?

以防万一不清楚。我希望程序将字符串与输入进行比较,如果它们相同,程序将结束。

感谢您的关注。

câu trả lời hay nhất

您根本无法使用 scanf()读入 std::chuỗi。这是因为 scanf() 是 C API 的一部分,它不支持非 POD 类型。在那里,%S 格式说明符需要一个指向字符数组的指针,其大小足以容纳该值(您不能真正保证这一点,这就是为什么 scanf() 甚至被认为是有害的)而你向它传递了一个指向 std::chuỗi 类型对象的指针(这与普通数组相差甚远)。一个好的编译器甚至会在这种情况下发出警告(如果不是错误,因为非 POD 类型不能通过 va_list 传递)。为什么不读入字符数组(C 方式),或者使用 std::cinthay vì std::cin >> h;?

关于C++ 字符串 != 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19411372/

27 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress