現代 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
- 一個浮點數或“小數”。(最後一個有點令人困惑。)可以表示某些分數。