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%2Ffile_IO_Exception</id>
		<title>C++ Tutorial/File Stream/file IO Exception - История изменений</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%2Ffile_IO_Exception"/>
		<link rel="alternate" type="text/html" href="http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/File_Stream/file_IO_Exception&amp;action=history"/>
		<updated>2026-04-17T17:51:29Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.cppe.ru/index.php?title=C%2B%2B_Tutorial/File_Stream/file_IO_Exception&amp;diff=2964&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/file_IO_Exception&amp;diff=2964&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/file_IO_Exception&amp;diff=2965&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/file_IO_Exception&amp;diff=2965&amp;oldid=prev"/>
				<updated>2010-05-25T10:31:14Z</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;==checks for errors opening 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;iostream&amp;gt;  &lt;br /&gt;
using namespace std;  &lt;br /&gt;
  &lt;br /&gt;
int main(){  &lt;br /&gt;
   ifstream file;  &lt;br /&gt;
   file.open(&amp;quot;a:test.dat&amp;quot;);  &lt;br /&gt;
  &lt;br /&gt;
   if( !file )  &lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;\nCan&amp;quot;t open GROUP.DAT&amp;quot;;  &lt;br /&gt;
   else  &lt;br /&gt;
      cout &amp;lt;&amp;lt; &amp;quot;\nFile opened successfully.&amp;quot;;  &lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;\nfile = &amp;quot; &amp;lt;&amp;lt; file;  &lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;\nError state = &amp;quot; &amp;lt;&amp;lt; file.rdstate();  &lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;\ngood() = &amp;quot; &amp;lt;&amp;lt; file.good();  &lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;\neof() = &amp;quot; &amp;lt;&amp;lt; file.eof();  &lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;\nfail() = &amp;quot; &amp;lt;&amp;lt; file.fail();  &lt;br /&gt;
   cout &amp;lt;&amp;lt; &amp;quot;\nbad() = &amp;quot; &amp;lt;&amp;lt; file.bad() &amp;lt;&amp;lt; endl;  &lt;br /&gt;
   file.close();  &lt;br /&gt;
   return 0;  &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Handle basic exception==&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;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;vector&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
#include &amp;lt;exception&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
void readIntegerFile(const string&amp;amp; fileName, vector&amp;lt;int&amp;gt;&amp;amp; dest)&lt;br /&gt;
{&lt;br /&gt;
  ifstream istr;&lt;br /&gt;
  int temp;&lt;br /&gt;
  istr.open(fileName.c_str());&lt;br /&gt;
  if (istr.fail()) {&lt;br /&gt;
    throw exception();&lt;br /&gt;
  }&lt;br /&gt;
  while (istr &amp;gt;&amp;gt; temp) {&lt;br /&gt;
    dest.push_back(temp);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
int main(int argc, char** argv)&lt;br /&gt;
{&lt;br /&gt;
  vector&amp;lt;int&amp;gt; myInts;&lt;br /&gt;
  const string fileName = &amp;quot;test.txt&amp;quot;;&lt;br /&gt;
  try {&lt;br /&gt;
    readIntegerFile(fileName, myInts);&lt;br /&gt;
  } catch (const exception&amp;amp; e) {&lt;br /&gt;
    cerr &amp;lt;&amp;lt; &amp;quot;Unable to open file &amp;quot; &amp;lt;&amp;lt; fileName &amp;lt;&amp;lt; endl;&lt;br /&gt;
    exit (1);&lt;br /&gt;
  }&lt;br /&gt;
  for (size_t i = 0; i &amp;lt; myInts.size(); i++) {&lt;br /&gt;
    cout &amp;lt;&amp;lt; myInts[i] &amp;lt;&amp;lt; &amp;quot; &amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  cout &amp;lt;&amp;lt; endl;&lt;br /&gt;
  return (0);&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==handles errors during input and output==&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;iostream&amp;gt;  &lt;br /&gt;
#include &amp;lt;process.h&amp;gt;&lt;br /&gt;
using namespace std;  &lt;br /&gt;
  &lt;br /&gt;
const int MAX = 1000;  &lt;br /&gt;
int buff[MAX];  &lt;br /&gt;
  &lt;br /&gt;
int main(){  &lt;br /&gt;
   &lt;br /&gt;
   for(int j=0; j&amp;lt;MAX; j++)&lt;br /&gt;
      buff[j] = j;  &lt;br /&gt;
   ofstream os;            &lt;br /&gt;
                           &lt;br /&gt;
   os.open(&amp;quot;a:edata.dat&amp;quot;, ios::trunc | ios::binary);  &lt;br /&gt;
   if(!os){ &lt;br /&gt;
      cerr &amp;lt;&amp;lt; &amp;quot;Could not open output file\n&amp;quot;; exit(1); &lt;br /&gt;
   }  &lt;br /&gt;
  &lt;br /&gt;
   os.write( reinterpret_cast&amp;lt;char*&amp;gt;(buff), MAX*sizeof(int) );  &lt;br /&gt;
   if(!os){ &lt;br /&gt;
      cerr &amp;lt;&amp;lt; &amp;quot;Could not write to file\n&amp;quot;; exit(1); &lt;br /&gt;
   }  &lt;br /&gt;
   os.close();             &lt;br /&gt;
  &lt;br /&gt;
   for(int j=0; j&amp;lt;MAX; j++)    &lt;br /&gt;
      buff[j] = 0;  &lt;br /&gt;
  &lt;br /&gt;
   ifstream is;            &lt;br /&gt;
   is.open(&amp;quot;a:edata.dat&amp;quot;, ios::binary);  &lt;br /&gt;
   if(!is){ &lt;br /&gt;
      cerr &amp;lt;&amp;lt; &amp;quot;Could not open input file\n&amp;quot;; exit(1); &lt;br /&gt;
   }  &lt;br /&gt;
  &lt;br /&gt;
   is.read( reinterpret_cast&amp;lt;char*&amp;gt;(buff), MAX*sizeof(int) );  &lt;br /&gt;
   if(!is){ &lt;br /&gt;
      cerr &amp;lt;&amp;lt; &amp;quot;Could not read from file\n&amp;quot;; exit(1); &lt;br /&gt;
   }  &lt;br /&gt;
  &lt;br /&gt;
   for(int j=0; j&amp;lt;MAX; j++){&lt;br /&gt;
      if( buff[j] != j ){ &lt;br /&gt;
         cerr &amp;lt;&amp;lt; &amp;quot;\nData is incorrect\n&amp;quot;; &lt;br /&gt;
         exit(1); &lt;br /&gt;
      }  &lt;br /&gt;
   }&lt;br /&gt;
   return 0;  &lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Read a file in try catch block==&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;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main () &lt;br /&gt;
{&lt;br /&gt;
  try{&lt;br /&gt;
      char buffer[256];&lt;br /&gt;
      ifstream myfile (&amp;quot;test.txt&amp;quot;);&lt;br /&gt;
      while (! myfile.eof() )&lt;br /&gt;
      {&lt;br /&gt;
        myfile.getline (buffer,100);&lt;br /&gt;
        cout &amp;lt;&amp;lt; buffer &amp;lt;&amp;lt; endl;&lt;br /&gt;
      }&lt;br /&gt;
  }catch(...){&lt;br /&gt;
     cout &amp;lt;&amp;lt; &amp;quot;There was an error !\n&amp;quot;;&lt;br /&gt;
  }&lt;br /&gt;
  return 0;&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;pre class=codeResult&amp;gt;This outputting a line.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==throw exception in function cascading==&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;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
void funcOne() throw(exception);&lt;br /&gt;
void funcTwo() throw(exception);&lt;br /&gt;
int main(int argc, char** argv)&lt;br /&gt;
{&lt;br /&gt;
  try {&lt;br /&gt;
    funcOne();&lt;br /&gt;
  } catch (exception&amp;amp; e) {&lt;br /&gt;
    cerr &amp;lt;&amp;lt; &amp;quot;Exception caught!\n&amp;quot;;&lt;br /&gt;
    exit(1);&lt;br /&gt;
  }&lt;br /&gt;
  return (0);&lt;br /&gt;
}&lt;br /&gt;
void funcOne() throw(exception)&lt;br /&gt;
{&lt;br /&gt;
  string str1;&lt;br /&gt;
  string* str2 = new string();&lt;br /&gt;
  try {&lt;br /&gt;
    funcTwo();&lt;br /&gt;
  } catch (...) {&lt;br /&gt;
    delete str2;&lt;br /&gt;
    throw; // rethrow the exception&lt;br /&gt;
  }&lt;br /&gt;
  delete str2;&lt;br /&gt;
}&lt;br /&gt;
void funcTwo() throw(exception)&lt;br /&gt;
{&lt;br /&gt;
  ifstream istr;&lt;br /&gt;
  istr.open(&amp;quot;filename&amp;quot;);&lt;br /&gt;
  throw exception();&lt;br /&gt;
  istr.close();&lt;br /&gt;
}&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>