这是我的代码:
ifstream f("data.txt");
string dat;
f >> dat;
有没有办法将它合并为一个语句,所以我可以一次性声明并初始化变量?
我试过
string dat << f;
但它给了我一个语法错误。
答案 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个结构的数组]。
虽然以上是一段“聪明”的小代码,但在几行代码中打开文件后读取数据的“自然”代码将更加清晰。