我想将一些文本输出到文件中。我听说最好是流式传输数据而不是创建一个大字符串并输出它。目前我正在创建一个大字符串并输出到文件。请求提供有关如何使用C ++流式传输数据和写入文件的示例代码。
谢谢!
答案 0 :(得分:17)
#include <fstream>
int main()
{
std::ofstream fout("filename.txt");
fout << "Hello";
fout << 5;
fout << std::endl;
fout << "end";
}
您的文件现在包含:
Hello5
end
有关详细信息,请参阅std::ofstream的详细信息。
HTH
答案 1 :(得分: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;
}