- std::stol():此函數將在函數調用中作為參數提供的字符串轉換為long int。它解析str並將其內容解釋為指定基數的整數,並將其作為long int類型的值返回。
用法:
long int stol (const string& str, size_t* idx = 0, int base = 10)
參數:該函數接受三個參數,如下所述:
- str:它指定一個以整數表示的字符串對象。
- idx:它指定一個指向size_t類型的對象的指針,該指針的值由函數設置為數值後str中下一個字符的位置。該參數也可以是空指針,在這種情況下不使用它。
- base:它指定數字基來確定解釋字符的數字係統。如果基數為0,則要使用的基數由序列中的格式確定。預設值為10。
返回值:該函數將轉換後的整數返回為long int類型的值。
// CPP code for illustration // of stol() function. #include <bits/stdc++.h> using namespace std; int main() { // converting decimal number. string dec_num = "9876543210"; cout << "dec_num = " << stol(dec_num, nullptr, 10) << "\n"; // converting hexadecimal number. string hex_num = "FFFFFF"; cout << "hex_num = " << stol(hex_num, nullptr, 16) << "\n"; // converting binary number. string binary_num = "1111111"; cout << "binary_num = " << stol(binary_num, nullptr, 2) << "\n"; return 0; }
輸出:dec_num = 9876543210 hex_num = 16777215 binary_num = 127
- std::stoll():此函數將在函數調用中作為參數提供的字符串轉換為long long int。它解析str並將其內容解釋為指定基數的整數,並將其作為long long int類型的值返回。
用法:
long long int stoll (const string& str, size_t* idx = 0, int base = 10)
-
參數:該函數接受三個參數,如下所述:
- str:此參數使用整數表示指定String對象。
- idx:此參數指定指向size_t類型的對象的指針,該對象的值由函數設置為數值後str中下一個字符的位置。此參數也可以是空指針,在這種情況下,將不使用該參數。
- base:此參數指定“數字基數”,以確定用於解釋字符的數字係統。如果基數為0,則它使用的基數由序列中的格式確定。默認基數為10。
返回值:該函數將轉換後的整數返回為long long int類型的值。
// CPP code for illustration // of stoll() function. #include <bits/stdc++.h> using namespace std; int main() { // converting decimal number. string dec_num = "9876543210"; cout << "dec_num = " << stoll(dec_num, nullptr, 10) << "\n "; // converting hexadecimal number. string hex_num = "FFFFFF"; cout << "hex_num = " << stoll(hex_num, nullptr, 16) << "\n"; // converting binary number. string binary_num = "1111111"; cout << "binary_num = " << stoll(binary_num, nullptr, 2) << "\n"; return 0; }
輸出:dec_num = 9876543210 hex_num = 16777215 binary_num = 127
錯誤和異常:如果無法執行任何轉換,則會引發invalid_argument異常。如果讀取的值超出可表示值範圍的整數,則拋出invalid_argument或out_of_range異常。
// CPP code for illustration of stoll()
// function when invalid_argument
// exception is thrown.
#include <bits/stdc++.h>
using namespace std;
int main() {
// An invalid input string that has no
// integer part.
string invalid_num = "abcf$#@de";
// stoll() throws invalid_argument exception
// when conversion process fails.
try{
cout << stoll(invalid_num) << "\n";
}
// catch invalid_argument exception.
catch(const std::invalid_argument){
cerr << "Invalid argument" << "\n";
}
return 0;
}
輸出:
Runtime Errors: Invalid argument
相關用法
注:本文由純淨天空篩選整理自nik1996大神的英文原創作品 std::stol() and std::stoll() functions in C++。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。