gpt4 book ai didi

c++ - cin.ignore(numeric_limits::max(), '\n'); max() 无法识别

转载 作者:IT老高 更新时间:2023-10-28 22:26:33 29 4
gpt4 key购买 nike

我正在介绍 C++,我在 Win7 上使用 VStudio 2013。我尽量避免从我的菜单中输入错误的数据,它在除此之外的所有菜单中都有效。

    cout << "Please choose your second number" << endl;
cin >> move2;

if (move2 < 1 || move2 > size)
{
cout << "That's not a valid move" << endl;
Sleep(2000);
cin.sync();
cin.clear();
}

唯一的区别是在 move > 的条件中是一个变量(大小)而不是一个数字。当我输入一个字符时,它会回到要求另一个输入的问题,但是如果我输入一个单词,它就会中断!

我尝试使用 cin.ignore(numeric_limits<streamsize>::max(), '\n');但编译器会突出显示 max()它说“期望标识符”。

对于你们所有优秀的程序员来说,这可能很容易,但我不知道如何解决它。有人可以帮帮我吗?

最佳答案

这是因为在 Visual Studio 中,当您使用 windows 包含时,它会定义一个宏 max()。如果您将鼠标悬停在示例中的 max() 上,您应该会收到一个智能感知警告。您可以通过在所有包含之后和任何代码之前取消定义 max 来解决此问题。

#undef max

关于c++ - cin.ignore(numeric_limits<streamsize>::max(), '\n'); max() 无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20446373/

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