将ifstream输入转换为模板类型

时间:2017-09-29 17:05:13

标签: c++

我有一个类型为T的模板类。如何将ifstream中的值转换为所述类型?有没有特别演员?

我不能使用static_cast或stod()。

我必须将值读作字符串,以便稍后我可以将字母中的数字分开。因此,我无法使用>>操作

如果我使用流>> T.和T是双重的。字符串会导致错误,如果我发现此错误,是否有办法查看导致错误的字符串?

1 个答案:

答案 0 :(得分:0)

  

我如何将ifstream中的值转换为所述类型?有没有特别演员?

没有特别演员。

如果文件包含可以使用T从文件中读取的operator>>类型的对象,则可以使用:

T t;
stream >> t;

如果文件包含二进制格式的T类型的对象,则可以使用以下方法从文件中读取该类型的对象:

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