首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C++中使用流写入文件

在C++中使用流写入文件
EN

Stack Overflow用户
提问于 2011-03-04 21:09:22
回答 2查看 24.1K关注 0票数 6

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

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-04 21:29:21

文件写入已经使用了缓冲。如果对你来说效率不高,你实际上可以修改filebuf,例如增加它的大小或使用一个自定义的文件。

避免对缓冲区进行不必要的刷新,这是使用endl完成的。这是文件写入中最“被滥用”的特性。

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

代码语言:javascript
运行
复制
#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;
}
票数 7
EN

Stack Overflow用户

发布于 2011-03-04 21:11:22

代码语言:javascript
运行
复制
#include <fstream>

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

您的文件现在包含以下内容:

代码语言:javascript
运行
复制
Hello5 
end

有关详情,请参阅std::ofstream上的更多信息。

HTH

票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5194119

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档