1

这是我的代码:

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

有没有办法将它组合成一个语句,这样我就可以一次性声明和初始化变量?

我试过

string dat << f;

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

4

1 回答 1

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 个结构的数组,其中包含游戏的前 10 个最高分]。

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

于 2013-06-09T15:49:16.400 回答