声明一个变量并从文件中一次性初始化它

时间:2013-06-09 15:37:31

标签: c++

这是我的代码:

ifstream f("data.txt");
string dat;
f >> dat;

有没有办法将它合并为一个语句,所以我可以一次性声明并初始化变量?

我试过

string dat << f;

但它给了我一个语法错误。

1 个答案:

答案 0 :(得分:1)

简短的回答是“不”。

答案越长,“你可以做一些能做到这一点的事情,但远非直接”。

 template <typename T>
 T read_from_file(const char *fname)
 {
     T v;
     ifstream f("data.txt");
     f >> v;
     return v;
 }


 ... 

 string dat = read_from_file("data.txt");

但是,如果你有多个数据条目,那么这个效果不会很好[当然,如果有一个为类声明了operator<<的结构或类,它可以用于一个结构,但是你不能用它来读取包含游戏前十名高分的10个结构的数组]。

虽然以上是一段“聪明”的小代码,但在几行代码中打开文件后读取数据的“自然”代码将更加清晰。