fstream << a(0) << ...<<a(n) vs fstream << a(0); ... fstream <<a(n);
fstream << a(0) << ...<<a(n) vs fstream << a(0); ... fstream <<a(n);
给定包含数据 a(1) - a(n) 的多个变量,使用 std::fstream 将此数据写入文件的最佳方法是什么?有什么区别?
如果我打开 std::fstream 文件,我会使用
std::fstream << a(0) <<"\t" <<
<< a(1) <<"\t" <<
...
<< a(n) <<"\n";
或
std::fstream << a(0);
std::fstream << "\t";
...
std::fstream << a(n);
std::fstream << "\n";
是否存在功能或性能差异?
std::fstream << a(0) <<"\t" <<
<< a(1) <<"\t" <<
...
<< a(n) <<"\n";
basic_ostream::operator<<
的return值为basic_ostream &
。
以上可以改写为:
std::fstream.operator<<( a(0) ).operator<<( "\t" ).operator<<( a(1) )...
即一系列 std::ostream.operator<<()
调用。
std::fstream << a(0);
std::fstream << "\t";
...
std::fstream << a(n);
std::fstream << "\n";
这可以重写为:
std::fstream.operator<<( a(0) );
std::fstream.operator<<( "\t" );
...
即一系列 std::fstream.operator<<()
调用。
输出序列的两种写法在功能上是相同的。
前者打字更少,更容易阅读恕我直言。
给定包含数据 a(1) - a(n) 的多个变量,使用 std::fstream 将此数据写入文件的最佳方法是什么?有什么区别?
如果我打开 std::fstream 文件,我会使用
std::fstream << a(0) <<"\t" <<
<< a(1) <<"\t" <<
...
<< a(n) <<"\n";
或
std::fstream << a(0);
std::fstream << "\t";
...
std::fstream << a(n);
std::fstream << "\n";
是否存在功能或性能差异?
std::fstream << a(0) <<"\t" <<
<< a(1) <<"\t" <<
...
<< a(n) <<"\n";
basic_ostream::operator<<
的return值为basic_ostream &
。
以上可以改写为:
std::fstream.operator<<( a(0) ).operator<<( "\t" ).operator<<( a(1) )...
即一系列 std::ostream.operator<<()
调用。
std::fstream << a(0);
std::fstream << "\t";
...
std::fstream << a(n);
std::fstream << "\n";
这可以重写为:
std::fstream.operator<<( a(0) );
std::fstream.operator<<( "\t" );
...
即一系列 std::fstream.operator<<()
调用。
输出序列的两种写法在功能上是相同的。
前者打字更少,更容易阅读恕我直言。