这是我的代码:
ifstream f("data.txt");
string dat;
f >> dat;
有没有办法将它组合成一个语句,这样我就可以一次性声明和初始化变量?
我试过
string dat << f;
但它给了我一个语法错误。
这是我的代码:
ifstream f("data.txt");
string dat;
f >> dat;
有没有办法将它组合成一个语句,这样我就可以一次性声明和初始化变量?
我试过
string dat << f;
但它给了我一个语法错误。
最简洁的答案是不”。
更长的答案是,“你可以做一些事情,但远非直接”。
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 个最高分]。
虽然上面是一段“聪明”的小代码,但在几行代码中打开文件后读取数据的更“自然”的代码会更清晰。