gpt4 book ai didi

c++ - 可以通过从 std::cin 中提取来初始化变量吗?

转载 作者:搜寻专家 更新时间:2023-10-31 01:37:31 24 4
gpt4 key购买 nike

是否可以实现类似的东西?

cin >> int num;

这样做的原因是因为我正在尝试读取标准输入流以获取循环标记值。目前的代码是:

int num;
for (cin >> num; num > 0; --num) {...}

如果我能实现我所要求的,num 就可以从从不使用它的外部作用域中删除,将它限制在 for 循环内,从而节省内存。

最佳答案

这里有一些选项:


{
int num = 0;
for (cin >> num; num > 0; --num) {...}
}

for (int num = 0, unused = !(cin >> num); num > 0; --num) { ... }

这要归功于 TonyD:

for (int num = (cin >> num ? num : 0); num > 0; --num) { ... } 

int read_int() { int x = 0; cin >> x; return x; }

// ...

for (int num = read_int(); num > 0; --num) { ... }

for (int num = [](){ int x = 0; cin >> x; return x; }(); num > 0; --num) { ... }

注意。这些版本在读取失败的情况下跳过循环。您可能希望抛出异常或其他东西。

关于c++ - 可以通过从 std::cin 中提取来初始化变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34056872/

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