现代 C++:精华篇/数值计算
外观
你面前的机器实际上只是一台非常高级的计算器,所以让我们让它计算吧。
#include <iostream>
#include <string>
int main()
{
std::string input;
int a, b;
std::cout << "Enter two integers to multiply.\n";
// Take input.
std::cin >> input;
// Parse it as an int.
a = std::stoi(input);
// Take input.
std::cin >> input;
// Parse it as an int.
b = std::stoi(input);
std::cout << a << " * " << b << " = " << a * b << "\n";
}
首先我们有一个名为 "input" 的 std::string
变量和两个名为 "a" 和 "b" 的 int
变量。int
是一个整数或整数值,因此它不能包含小数点。
重要: =(等号)不代表相等。在 C++ 中,它是赋值运算符;它将右边的值放入左边的变量中,覆盖该变量的任何先前值。
std::stoi
是一个函数,其名称代表string to int。它接收一个字符串(在本例中,是 input
的值)并将其转换为整数。如果这不可能,或者你输入了一个很大的数字,程序将崩溃,你可能会看到有关“未处理异常”的内容。如何防止此问题将在接下来的几章中介绍。
你可以在 cplusplus.com 或 cppreference.com 上阅读有关 std::stoi
的信息。它还有一些朋友,同样。
C++ 中的乘法运算符是 *(星号)。除法是 /(斜杠)。
尝试输入 3.14 作为其中一个整数。糟糕!std::stoi
找到了有效的整数 3 并忽略了它之后无效的输入。对于 3sdjgh,你将获得相同的结果。接下来的几章应该让你能够编写一个更好的整数解析器。
- 修改上面的程序,使其可以接受小数点(浮点数 或
float
值)。提示:检查此页面上的链接。
- int
- 一个整数或“整数值”。不能表示分数。
- 赋值运算符
- 将右边的值放入左边的变量中,覆盖该变量的任何先前值。语法:
=
- 函数
- 一段命名的代码。稍后将详细介绍。
- float
- 一个浮点数或“小数”。(最后一个有点令人困惑。)可以表示某些分数。