[英]Read string as command line argument C++
我想讀取一個字符串並在C ++中對其進行解析,以將其從命令行轉換為雙精度形式,並獲取向量中的每個數字
'1.1,2.3,3.4,4.6,5.8,6.9,7.8,8.0,9.9,10.11,11.67'
std::string tempInput;
tempInput = argv[1];
vector <double> example;
std::vector< std::string > tokens;
while ( std::cin >> tempInput ) {
example.push_back( <double>( tempInput ) );
}
因此,最簡單的方法是這樣做/
用空格替換所有逗號:
std::string input = "1.1,2.3,3.4,4.6,5.8,6.9,7.8,8.0,9.9,10.11,11.67";
std::replace(input.begin(), input.end(), ',', ' ');
std::vector<double> result;
std::istringstream inputStream(input);
double value;
while (inputStream >> value)
result.push_back(value);
inputStream >> std::ws;
if (!inputStream.eof())
// Handle input error
或者,而不是while
循環,請考慮std::istream_iterator
:
std::vector<double> result;
std::istringstream inputStream(input);
std::copy(std::istream_iterator<double>(inputStream),
std::istream_iterator<double>(),
std::back_inserter(result));
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.