A<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B_Tutorial%2FFile_Stream%2Fofstream</id>
		<title>C++ Tutorial/File Stream/ofstream - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.cppe.ru/index.php?action=history&amp;feed=atom&amp;title=C%2B%2B_Tutorial%2FFile_Stream%2Fofstream"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/File_Stream/ofstream&amp;action=history"/>
		<updated>2026-04-17T22:31:43Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/File_Stream/ofstream&amp;diff=2942&amp;oldid=prev</id>
		<title> в 14:21, 25 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/File_Stream/ofstream&amp;diff=2942&amp;oldid=prev"/>
				<updated>2010-05-25T14:21:17Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 14:21, 25 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/File_Stream/ofstream&amp;diff=2943&amp;oldid=prev</id>
		<title>Admin: 1 версия:&amp;#32;Импорт контента...</title>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/File_Stream/ofstream&amp;diff=2943&amp;oldid=prev"/>
				<updated>2010-05-25T10:31:10Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия: Импорт контента...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Create a sequential file.==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using std::cerr;&lt;br /&gt;
using std::cin;&lt;br /&gt;
using std::cout;&lt;br /&gt;
using std::endl;&lt;br /&gt;
using std::ios;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
using std::ofstream;&lt;br /&gt;
#include &amp;lt;cstdlib&amp;gt; &lt;br /&gt;
using std::exit;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
   ofstream outClientFile( &amp;quot;clients.dat&amp;quot;, ios::out );&lt;br /&gt;
   if ( !outClientFile )&lt;br /&gt;
   {&lt;br /&gt;
      cerr &amp;lt;&amp;lt; &amp;quot;File could not be opened&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
      exit( 1 );&lt;br /&gt;
   }&lt;br /&gt;
   int account = 12;&lt;br /&gt;
   char name[80] = &amp;quot;This Is A Test&amp;quot;; &lt;br /&gt;
   double balance = 123.123;&lt;br /&gt;
   outClientFile &amp;lt;&amp;lt; account &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; name &amp;lt;&amp;lt; &amp;quot; &amp;quot; &amp;lt;&amp;lt; balance &amp;lt;&amp;lt; endl;&lt;br /&gt;
&lt;br /&gt;
   return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Demonstrate peek(), unget(), and ignore().==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;cctype&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  char ch;&lt;br /&gt;
  char idnum[5];&lt;br /&gt;
  idnum[4] = 0;&lt;br /&gt;
  ofstream fout(&amp;quot;test.dat&amp;quot;);&lt;br /&gt;
  if(!fout) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Cannot open test.dat for output.\n&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  fout &amp;lt;&amp;lt; &amp;quot;A #pending\n, B, #8875\n&amp;quot;;&lt;br /&gt;
  fout.close();&lt;br /&gt;
  if(!fout.good()) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Error creating data file.&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  ifstream fin(&amp;quot;test.dat&amp;quot;);&lt;br /&gt;
  if(!fin) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Cannot open test.dat for input.\n&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  fin.exceptions(ios::badbit | ios::failbit);&lt;br /&gt;
  try {&lt;br /&gt;
    do {&lt;br /&gt;
      fin.ignore(40, &amp;quot;#&amp;quot;);&lt;br /&gt;
      if(fin.eof()) {&lt;br /&gt;
        fin.clear(); // clear eofbit&lt;br /&gt;
        break;&lt;br /&gt;
      }&lt;br /&gt;
      ch = fin.peek();&lt;br /&gt;
      if(isdigit(ch)) {&lt;br /&gt;
        fin.read((char *)idnum, 4);&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;ID #: &amp;quot; &amp;lt;&amp;lt; idnum &amp;lt;&amp;lt; endl;&lt;br /&gt;
      } else {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;ID not available: &amp;quot;;&lt;br /&gt;
        ch = fin.get();&lt;br /&gt;
        while(isalpha(ch)) {&lt;br /&gt;
          cout &amp;lt;&amp;lt; ch;&lt;br /&gt;
          ch = fin.get();&lt;br /&gt;
        };&lt;br /&gt;
        fin.unget();&lt;br /&gt;
        cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
      }&lt;br /&gt;
    } while(fin.good());&lt;br /&gt;
  } catch(ios_base::failure exc) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Error reading data file.\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  try {&lt;br /&gt;
    fin.close();&lt;br /&gt;
  } catch (ios_base::failure exc) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Error closing data file.&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==ofstream: seek from beginning==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
main(int argc,char *argv[])&lt;br /&gt;
{&lt;br /&gt;
  ofstream out(&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
  if(!out)&lt;br /&gt;
  {   &lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Cannot open file&amp;quot;;   &lt;br /&gt;
    return 1; &lt;br /&gt;
  }&lt;br /&gt;
  out.seekp(2,ios::beg);&lt;br /&gt;
  out.put(&amp;quot;X&amp;quot;);&lt;br /&gt;
  out.close();&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Read char array from a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include&amp;lt;iostream.h&amp;gt;&lt;br /&gt;
#include&amp;lt;fstream.h&amp;gt;&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
  ofstream out(&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
  if(! out)&lt;br /&gt;
  {  &lt;br /&gt;
    cout&amp;lt;&amp;lt;&amp;quot;Cannot open output file\n&amp;quot;;&lt;br /&gt;
       return 1;&lt;br /&gt;
  }&lt;br /&gt;
  char nums[4]={&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;,&amp;quot;d&amp;quot;};&lt;br /&gt;
  out.write((char *)nums,sizeof(nums));&lt;br /&gt;
  out.close();&lt;br /&gt;
  ifstream in(&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
  if(! in)&lt;br /&gt;
  {  &lt;br /&gt;
    cout&amp;lt;&amp;lt;&amp;quot;Cannot open input file\n&amp;quot;;&lt;br /&gt;
       return 1;&lt;br /&gt;
  }&lt;br /&gt;
  in.read((char *)&amp;amp; nums,sizeof(nums));&lt;br /&gt;
  for(int i=0;i&amp;lt;4;i++)&lt;br /&gt;
    cout&amp;lt;&amp;lt;nums[i]&amp;lt;&amp;lt;&amp;quot; &amp;quot;;&lt;br /&gt;
  cout&amp;lt;&amp;lt;&amp;quot;\n&amp;quot;;&lt;br /&gt;
  cout&amp;lt;&amp;lt;in.gcount()&amp;lt;&amp;lt;&amp;quot;characters read\n&amp;quot;;&lt;br /&gt;
  in.close();&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;a b c d&lt;br /&gt;
4characters read&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Save and read double array in a binary file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  double fnum[4] = {9.5, -3.4, 1.0, 2.1};&lt;br /&gt;
  int i;&lt;br /&gt;
  ofstream out(&amp;quot;numbers&amp;quot;, ios::out | ios::binary);&lt;br /&gt;
  if(!out) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Cannot open file.&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
   }&lt;br /&gt;
  out.write((char *) &amp;amp;fnum, sizeof fnum);&lt;br /&gt;
  out.close();&lt;br /&gt;
  for(i=0; i&amp;lt;4; i++) // clear array&lt;br /&gt;
    fnum[i] = 0.0;&lt;br /&gt;
  ifstream in(&amp;quot;numbers&amp;quot;, ios::in | ios::binary);&lt;br /&gt;
  in.read((char *) &amp;amp;fnum, sizeof fnum);&lt;br /&gt;
  // see how many bytes have been read&lt;br /&gt;
  cout &amp;lt;&amp;lt; in.gcount() &amp;lt;&amp;lt; &amp;quot; bytes read\n&amp;quot;;&lt;br /&gt;
  for(i=0; i&amp;lt;4; i++) // show values read from file&lt;br /&gt;
  cout &amp;lt;&amp;lt; fnum[i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
  in.close();&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;32 bytes read&lt;br /&gt;
9.5 -3.4 1 2.1 &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Save and read structure==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
#include &amp;lt;cstring&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
struct MyRecord {&lt;br /&gt;
  char name[80];&lt;br /&gt;
  double balance;&lt;br /&gt;
  unsigned long account_num;&lt;br /&gt;
};&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  struct MyRecord acc;&lt;br /&gt;
  strcpy(acc.name, &amp;quot;R&amp;quot;);&lt;br /&gt;
  acc.balance = 1.3;&lt;br /&gt;
  acc.account_num = 34;&lt;br /&gt;
  ofstream outbal(&amp;quot;balance&amp;quot;, ios::out | ios::binary);&lt;br /&gt;
  if(!outbal) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Cannot open file.\n&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  outbal.write((char *) &amp;amp;acc, sizeof(struct MyRecord));&lt;br /&gt;
  outbal.close();&lt;br /&gt;
  ifstream inbal(&amp;quot;balance&amp;quot;, ios::in | ios::binary);&lt;br /&gt;
  if(!inbal) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Cannot open file.\n&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  inbal.read((char *) &amp;amp;acc, sizeof(struct MyRecord));&lt;br /&gt;
  cout &amp;lt;&amp;lt; acc.name &amp;lt;&amp;lt; endl;&lt;br /&gt;
  cout &amp;lt;&amp;lt; &amp;quot;Account # &amp;quot; &amp;lt;&amp;lt; acc.account_num;&lt;br /&gt;
  cout.precision(2);&lt;br /&gt;
  cout.setf(ios::fixed);&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &amp;quot;Balance: $&amp;quot; &amp;lt;&amp;lt; acc.balance;&lt;br /&gt;
  inbal.close();&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;R&lt;br /&gt;
Account # 34&lt;br /&gt;
Balance: $1.30&amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Save char array to a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include&amp;lt;iostream.h&amp;gt;&lt;br /&gt;
#include&amp;lt;fstream.h&amp;gt;&lt;br /&gt;
main()&lt;br /&gt;
{&lt;br /&gt;
  ofstream out(&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
  if(! out)&lt;br /&gt;
  {  &lt;br /&gt;
    cout&amp;lt;&amp;lt;&amp;quot;Cannot open output file\n&amp;quot;;&lt;br /&gt;
       return 1;&lt;br /&gt;
  }&lt;br /&gt;
  char nums[4]={&amp;quot;a&amp;quot;,&amp;quot;b&amp;quot;,&amp;quot;c&amp;quot;,&amp;quot;d&amp;quot;};&lt;br /&gt;
  out.write((char *)nums,sizeof(nums));&lt;br /&gt;
  out.close();&lt;br /&gt;
  ifstream in(&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
  if(! in)&lt;br /&gt;
  {  &lt;br /&gt;
    cout&amp;lt;&amp;lt;&amp;quot;Cannot open input file\n&amp;quot;;&lt;br /&gt;
       return 1;&lt;br /&gt;
  }&lt;br /&gt;
  in.read((char *)&amp;amp; nums,sizeof(nums));&lt;br /&gt;
  for(int i=0;i&amp;lt;4;i++)&lt;br /&gt;
    cout&amp;lt;&amp;lt;nums[i]&amp;lt;&amp;lt;&amp;quot; &amp;quot;;&lt;br /&gt;
  cout&amp;lt;&amp;lt;&amp;quot;\n&amp;quot;;&lt;br /&gt;
  cout&amp;lt;&amp;lt;in.gcount()&amp;lt;&amp;lt;&amp;quot;characters read\n&amp;quot;;&lt;br /&gt;
  in.close();&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;a b c d&lt;br /&gt;
4characters read&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Save chars to a binary file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
  int i;&lt;br /&gt;
  ofstream out(&amp;quot;test.dat&amp;quot;, ios::out | ios::binary);&lt;br /&gt;
  if(!out) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Cannot open output file.\n&amp;quot;;&lt;br /&gt;
    return 1;&lt;br /&gt;
  }&lt;br /&gt;
  // write all characters to disk&lt;br /&gt;
  for(i=0; i&amp;lt;256; i++) out.put((char) i);&lt;br /&gt;
  out.close();&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Writing numbers to a file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
&amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;#include &amp;lt;fstream&amp;gt;                             &lt;br /&gt;
#include &amp;lt;iomanip&amp;gt;&lt;br /&gt;
int main() {&lt;br /&gt;
  std::ofstream outFile(&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
  for(int i = 0 ; i &amp;lt; 100 ; i++) {&lt;br /&gt;
    if(i  5 == 0)&lt;br /&gt;
      outFile &amp;lt;&amp;lt; std::endl;&lt;br /&gt;
    outFile &amp;lt;&amp;lt; std::setw(10) &amp;lt;&amp;lt; i;&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==12.&amp;amp;nbsp;9.&amp;amp;nbsp;3.&amp;amp;nbsp;Writing on a text file==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;cpp&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;fstream.h&amp;gt;&lt;br /&gt;
int main () {&lt;br /&gt;
  ofstream examplefile (&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
  &lt;br /&gt;
  if (examplefile.is_open())&lt;br /&gt;
  {&lt;br /&gt;
    examplefile &amp;lt;&amp;lt; &amp;quot;This is a line.\n&amp;quot;;&lt;br /&gt;
    examplefile &amp;lt;&amp;lt; &amp;quot;This is another line.\n&amp;quot;;&lt;br /&gt;
    examplefile.close();&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>