使用C++中的流写入文件

ven*_*rty 5 c++

我想要一些文本输出到文件.我听说最好是流式传输数据而不是创建一个大字符串并输出它.目前我正在创建一个大字符串并输出到文件.请求提供有关如何使用C++流式传输数据和写入文件的示例代码.

谢谢!

Arm*_*yan 17

#include <fstream>

int main()
{
   std::ofstream fout("filename.txt");
   fout << "Hello";
   fout << 5;
   fout << std::endl;
   fout << "end";
}
Run Code Online (Sandbox Code Playgroud)

您的文件现在包含:

Hello5 
end
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅std :: ofstream的更多信息.

HTH


Cas*_*Cow 7

文件写入已经使用缓冲.如果它对您效率不高,您实际上可以修改filebuf,例如增加其大小或使用自定义文件.

避免对缓冲区进行不必要的刷新,这是使用endl完成的.这是文件编写中最"滥用"的特性.

创建用于输出的文件流的最简单方法是:

#include <fstream>

int main( int argc, char * argv[])
{
   if( argc > 1 )
   {
      std::ofstream outputFile( argv[1] );
      if( outputFile )
      {
         outputFile << 99 << '\t' << 158 << '\n'; // write some delimited numbers
         std::vector< unsigned char > buf;
         // write some data into buf
         outputFile.write( &buf[0], buf.size() ); // write binary to the output stream
      }
      else
      {
         std::cerr << "Failure opening " << argv[1] << '\n';
         return -1;
      }
   }
   else
   {
      std::cerr << "Usage " << argv[0] << " <output file>\n";
      return -2;
   }
   return 0;
}
Run Code Online (Sandbox Code Playgroud)