我如何在不使用 cin、getline 等的情况下存储值

How am I able to store a value without using cin, getline etc

本文关键字:getline 情况下 存储 cin      更新时间:2023-10-16

我对此感到困惑。所以我写了一些代码来尝试解释它。我想知道为什么即使我没有提示输入cingetline,我也能存储数字或字符?以我有限的知识,我现在唯一能想到的是"while(!(cin >> num1))",但话又说回来,为什么 while 循环会执行条件?

#include <iostream>
#include <limits>
using namespace std;
int main()
{
    int num1;
    cout << "Please enter a number: ";
    while (!(cin >> num1))
    {
        cin.clear();
        cin.ignore(numeric_limits<streamsize>::max(), 'n');
        cout << "Invalid input. Try again: ";
    }
}

表达式

cin >> num1

既具有操作性,又具有表现力。>>函数将输入存储在 num1 中,同时返回布尔值。在成功的读取/存储 cin>> num1 返回 0,while 循环条件如下所示:

while(!(0)){ //code   }

相当于

while(1){ //code   }

相当于

while(true){ //code   }

因此,当 CIN>> Sum1 成功运行时,循环将继续。

从 CIN>> num1 读取/存储失败返回我相信 1,在 while 循环条件下计算结果为 false。

while(!(1)){ //code    }

相当于

while(false){ //code    }

循环到此结束