gpt4 book ai didi

c++ - 为什么 while(int) 在 int = 0 时结束?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:01:40 26 4
gpt4 key购买 nike

我试图在 C++ 中找到与 Java 的 in.hasNextInt 等效的输入,我找到了这个。

#include <iostream>
#include <vector>

int main ()
{
std::vector<int> myvector;
int myint;

std::cout << "Please enter some integers (enter 0 to end):\n";

do {
std::cin >> myint;
myvector.push_back (myint);
} while (myint);

std::cout << "myvector stores " << int(myvector.size()) << " numbers.\n";

return 0;
}

但我真的不明白为什么当输入为 0 时输入循环会停止。它有 while(myint) 循环,这也让我感到困惑,因为 myint是整数而不是 boolean 值。当我们为 myint 输入其他内容时,它可能会作为 boolean 值工作,但我认为 0 仍然可以作为整数。任何人都可以向我解释一下吗?

最佳答案

int 隐式转换为 bool。参见 here :

The value zero (for integral, floating-point, and unscoped enumeration) and the null pointer and the null pointer-to-member values become false. All other values become true.

关于c++ - 为什么 while(int) 在 int = 0 时结束?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57199069/

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