2016-10-22 15 views
-2

istringstream変数を再利用したい。構築関数を使用してストリーム変数を初期化するのは簡単です。しかし、=または<<を使用して新しい値に再割り当てしようとすると、エラーが発生します。私はC++ 11を使用しています。 =を使用すると、2015年と比較してコンパイルエラーが発生していないようです。しかし、gcc 4.8.2(CentOS 6.4 x86_64のdevtools-2)にエラーが発生します。以下のようなcplusplusでistringstreamを再利用する方法

コード:ファイルがあるべき

std::string line; 

int simmulationtimes; double InitialIDensity; 

// deploy configuration file 
std::ifstream config(configfile); 
if (!config.is_open()) 
{ 
     return false; 
} 
std::getline(config, line); 
std::istringstream sline(line); 
std::string sInitialIDensity; 
while(std::getline(sline, sInitialIDensity, '=')); 
InitialIDensity = std::stod(sInitialIDensity); 

std::getline(config, line); 
std::string ssimmulationtimes; 
sline.str(""); sline.clear(); 
sline = std::istringstream(line); 
while (std::getline(sline, ssimmulationtimes, '=')); 
simmulationtimes = std::stoi(ssimmulationtimes); 

設定:

IDensity=0.5 
times=5 

エラー:(how-to-initialize-a-stdstringstreamのような)

error: no match for ‘operator=’ (operand types are ‘std::istringstream {aka std::basic_istringstream<char>}’ and ‘std::string {aka std::basic_string<char>}’) 
    sline = std::istringstream(line); 

ソリューションにstringstreamは私のために動作しない再利用についてstackoverflowの上。再利用のアイデアご検討いただきありがとうございます。

+0

重複する質問ではありません。 –

答えて

関連する問題