gpt4 book ai didi

c++ - 字符串/字符在内部如何存储在 int 和 float 中

转载 作者:行者123 更新时间:2023-11-30 00:45:41 25 4
gpt4 key购买 nike

我在执行以下代码块时错误地发现了这个场景

#include <iostream>
using namespace std;
int main()
{
int input1;
float input2;

cout << "Enter a real number :";
cin >> input1;
cout << "The int number is " << input1 << endl;

cout << "Enter another number :";
cin >> input2;
cout << "The float number is " << input2 << endl;
}

上面的输出是

Enter a real number :a
The int number is -858993460
Enter another number :a
The float number is -1.07374e+08

任何人都可以解释一下上述情况在内部是如何处理导致上述情况的吗?

注意 -

  • 在 VS2015 中运行上述程序。

因为我刚开始尝试使用 C++,所以如果我在这个过程中遗漏了任何引用资料,请指出。

最佳答案

int input1;
float input2;

此时,input1input2 都具有未定义的值,因为您没有初始化它们。

std::cin 期望输入一个整数,但您输入了 'a',这使得 std::cin 变为 失败。该故障持续存在,因此在清除 failbit 之前,无法使用 std::cin 执行提取操作。

在您的输入操作失败后,input1input2 仍然是“未定义的”。打印它们会导致未定义的行为。

关于c++ - 字符串/字符在内部如何存储在 int 和 float 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42599740/

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