我想要一些文本输出到一个文件。我听说最好是流式传输数据,而不是创建一个大字符串并输出。目前,我正在创建一个大字符串并将其输出到一个文件。请求提供有关如何使用C++流式传输数据和写入文件的示例代码。
谢谢!
发布于 2011-03-04 21:29:21
文件写入已经使用了缓冲。如果对你来说效率不高,你实际上可以修改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;
}
发布于 2011-03-04 21:11:22
#include <fstream>
int main()
{
std::ofstream fout("filename.txt");
fout << "Hello";
fout << 5;
fout << std::endl;
fout << "end";
}
您的文件现在包含以下内容:
Hello5
end
有关详情,请参阅std::ofstream上的更多信息。
HTH
https://stackoverflow.com/questions/5194119
复制相似问题