C++でgetlineを使用してデータを読み取った後、数値に変換する方法は何ですか?
C++で、文字列データを読み取って他の方法で数値型に変換するためにstd::getline関数を使用することができます。以下は例です:
#include <iostream>
#include <string>
#include <sstream>
int main() {
std::string input;
std::cout << "输入一个数字:";
std::getline(std::cin, input);
// 使用std::istringstream将字符串转换为数值类型
std::istringstream iss(input);
int number;
if (iss >> number) {
std::cout << "转换后的数值为:" << number << std::endl;
} else {
std::cout << "无法转换为数值类型" << std::endl;
}
return 0;
}
上記の例では、まずstd::getline関数を使って標準入力から1行の文字列データを読み取ります。その後、読み取った文字列データをstd::istringstreamオブジェクトに渡します。次に、>>演算子を使用してstd::istringstreamオブジェクトからデータを取り出し、int型に変換しようとします。変換が成功した場合は、変換後の値を出力し、それ以外の場合はエラーメッセージを出力します。
std::istringstreamを使用する前に、ヘッダーファイルを含める必要があります。