2017-09-29 15 views
-1

テンプレートタイプがTです。ifstreamから値をこのタイプに変換するにはどうすればよいですか?特別なキャストはありますか?ifstream入力をテンプレートタイプに変換する

たとえば、static_castやstod()は使用できません。

私は後で文字から数字を分離できるように、文字列として値を読み込む必要があります。したがって、>>演算子は使用できません。

ストリーム>> Tを使用する場合、Tは倍精度です。文字列でエラーが発生する場合は、このエラーが発生した場合、エラーの原因となった文字列を表示する方法がありますか?

+0

「YourClass 」のグローバル演算子のオーバーロードはどうですか? –

答えて

0

値をifstreamから上記の型に変換するにはどうすればよいですか?特別なキャストはありますか?

特別なキャストはありません。

ファイルがoperator>>を使用して、ファイルから読み取ることができるタイプTのオブジェクトが含まれている場合は、使用できます。

T t; 
stream >> t; 

をファイルはバイナリ形式のタイプTのオブジェクトが含まれている場合は、オブジェクトを読み取ることができ

T t; 
stream.read(static_cast<char*>(&t), sizeof(T)); 
+0

ストリーム>>本当にうまくいきます。しかし、ファイルからすべての値を取得できるように、文字列として読み込む必要があります。私はファイル内の値を2つの異なるファイルに分けなければなりません。一つは文字と一つの数字です。 – Lithicas

+1

これを文字列に読み込んだ後、 'std :: istringstream'を使って' T' – Kevin

+1

@Lithicasに読み込むことができます。これはあなたの投稿の質問とはかなり異なっています。 –

関連する問題