<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>binary fstram object</title>
		<link>http://www.allegro.cc/forums/view/585745</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 11 Jun 2006 21:27:44 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m trying to get a binay file open to save the high scores of the game I&#39;m writing. Heres how I&#39;m doing it. (posted in order of calling)</p><p>[global]</p><p>fstream sav;</p><p>[main()]</p><p>sav.open(&quot;hssav.sav&quot;, ios::binary|ios::in|ios::out);</p><p>[game() function called by main()]</p><p>textprintf(buffer, font, SCREENW / 2, 30, BLUE, &quot;Opened? %d&quot;, ((int)sav.is_open()));</p><p>//prints the integer result of (int)sav.is_open()</p><p>[exit(function called by main)]</p><p>sav.close();</p><p> (int)sav.is_open is returning 0, I think that means that the object couldn&#39;t open the file. Am I right? Assuming I am, why would that be? Doesn&#39;t open(...) create the file if it doesn&#39;t exist. If not, how do I go about creating the file? That is is important because I want hssav.sav to be created at runtime if it doesn&#39;t already exist.</p><p>I haven&#39;t tried reading or writing yet, I figure there isn&#39;t a point in trying to read or write if there is no file.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (aadfo824)</author>
		<pubDate>Sun, 04 Jun 2006 09:00:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Have you tried passing the full path instead of just the file name? Like <i>C:/test/hssav.sav</i> (note that you use /, not the evil \). Does it work with the full path? Try not to use spaces in the path.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Sun, 04 Jun 2006 10:26:51 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Maybe you don&#39;t have permissions to write to the working directory?</p><p>Maybe your OS cant handle having input and output on a file at the same time?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Sun, 04 Jun 2006 21:31:54 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>1) If I use a full path, I won&#39;t be able to move the code around by email or flashdrive, something I puit high value in. Why &quot;/&quot; and not &quot;\&quot;, the way Explorer does it?</p><p>2) My OS is an updated, genuine version of Windows XP. I think it can handle opening files.</p><p>The people on msdn forums said that ios::in means that the file has to exist already. That makes sense, so now we have the problem, anyone have a solution?</p><p>What I want to do is this:</p><p>1) Look for &quot;hssav.sav&quot; and read the highscores for display, If it doesn&#39;t exist, create it with 0s for high scores. </p><p>2) Display the scores throughout the game.</p><p>3) When the player dies (and they will, ha ha), compare their scores. If the player did better than the last high score, write his score to &quot;hssav.sav&quot;.</p><p>If I can only open the fstream object in ios::out and ios::binary, will I be able to read from it? Maybe I should create more than one object?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (aadfo824)</author>
		<pubDate>Sun, 04 Jun 2006 23:39:06 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why not try to open the file for reading, if it fails create the file and proceed with opening with ios:in?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HoHo)</author>
		<pubDate>Sun, 04 Jun 2006 23:46:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
1) If I use a full path, I won&#39;t be able to move the code around by email or flashdrive, something I puit high value in. Why &quot;/&quot; and not &quot;\&quot;, the way Explorer does it?
</p></div></div><p>
That was just to check if you could open the file. That way you would have known if you could open the file or not. Also, in the C language, you use / to separate paths.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Sun, 04 Jun 2006 23:50:44 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
My OS is an updated, genuine version of Windows XP. I think it can handle opening files.
</p></div></div><p>

He didn&#39;t mean that the operating system was unable to open files. He meant he wasn&#39;t sure it could handle opening a file for reading and writting in the way you did it at the same time. But, in this case, yes, it can.</p><p>When opening a binary file, you open with ios::binary | ios::in | ios::out as to not overwrite data, and to allow you to read and write at the same time. It is kind of like appending, only you still read/write from the beginning of the file.</p><p>The \ character is just a pain in the <span class="cuss"><span>ass</span></span> to deal with. Use / because A) it works, and B) it&#39;s not a pain in the <span class="cuss"><span>ass</span></span>. If you want to use the full path without having to set it constant within code (such as in a #define statement), then you can get the path from argv[0].</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>fstream sav<span class="k2">;</span></td></tr><tr><td class="number">2</td><td><span class="p">#define SAV_FILE     "hssav.sav"</span></td></tr><tr><td class="number">3</td><td>&#160;</td></tr><tr><td class="number">4</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">5</td><td><span class="k2">{</span></td></tr><tr><td class="number">6</td><td>  <span class="c">/* init allegro here */</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td>  <span class="c">/* do some junk here that would make us want</span></td></tr><tr><td class="number">9</td><td><span class="c">     to bring up the highscores */</span></td></tr><tr><td class="number">10</td><td>  <span class="k1">if</span><span class="k2">(</span> <span class="k3">!</span><a href="http://www.allegro.cc/manual/file_exists" target="_blank"><span class="a">file_exists</span></a><span class="k2">(</span>SAV_FILE, <span class="n">0</span>, NULL<span class="k2">)</span> <span class="k2">)</span></td></tr><tr><td class="number">11</td><td>    create_highscores<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>  </td></tr><tr><td class="number">13</td><td>  sav.open<span class="k2">(</span>SAV_FILE, ios::binary <span class="k3">|</span> ios::in <span class="k3">|</span> ios::out<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>  <span class="k1">if</span><span class="k2">(</span> sav.is_open<span class="k2">(</span><span class="k2">)</span> <span class="k2">)</span></td></tr><tr><td class="number">15</td><td>    <span class="c">/* somehow extract your data from the file now */</span></td></tr><tr><td class="number">16</td><td>  <span class="k1">else</span></td></tr><tr><td class="number">17</td><td>    <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Error opening file for reading: %s"</span>, SAV_FILE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">20</td><td><span class="k2">}</span></td></tr><tr><td class="number">21</td><td>&#160;</td></tr><tr><td class="number">22</td><td><span class="k1">void</span> create_highscores<span class="k2">(</span><span class="k2">)</span></td></tr><tr><td class="number">23</td><td><span class="k2">{</span></td></tr><tr><td class="number">24</td><td>  fstream nf<span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  nf.open<span class="k2">(</span>SAV_FILE, ios::binary <span class="k3">|</span> ios::out<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td>&#160;</td></tr><tr><td class="number">27</td><td>  <span class="k1">if</span><span class="k2">(</span> nf.is_open<span class="k2">(</span><span class="k2">)</span> <span class="k2">)</span></td></tr><tr><td class="number">28</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">29</td><td>    <span class="c">// fill the file with 0s</span></td></tr><tr><td class="number">30</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">31</td><td>  <span class="k1">else</span></td></tr><tr><td class="number">32</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">33</td><td>    <span class="c">// uh-oh!</span></td></tr><tr><td class="number">34</td><td>    <a href="http://www.allegro.cc/manual/allegro_message" target="_blank"><span class="a">allegro_message</span></a><span class="k2">(</span><span class="s">"Error opening file for writing: %s"</span>, SAV_FILE<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">35</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">36</td><td>&#160;</td></tr><tr><td class="number">37</td><td>  <span class="c">// we close it, even though the default destructor</span></td></tr><tr><td class="number">38</td><td>  <span class="c">// does so automatically. why? don't be a lazy</span></td></tr><tr><td class="number">39</td><td>  <span class="c">// programmer and expect your code to run!</span></td></tr><tr><td class="number">40</td><td>  nf.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">41</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Elverion)</author>
		<pubDate>Mon, 05 Jun 2006 00:47:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks, now its opening just fine. However, I think I&#39;m writing or reading incorrectly. Here is my code (this takes place in the middle of a project, this isn&#39;t all of the code):</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>&#160;</td></tr><tr><td class="number">2</td><td><span class="c">//global</span></td></tr><tr><td class="number">3</td><td><span class="p">#define S_FILE "hssav.sav"</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td>fstream sav<span class="k2">;</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td><span class="k1">void</span> create_hsfile<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>&#160;</td></tr><tr><td class="number">9</td><td><span class="c">//main</span></td></tr><tr><td class="number">10</td><td> <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.allegro.cc/manual/file_exists" target="_blank"><span class="a">file_exists</span></a><span class="k2">(</span>S_FILE, <span class="n">0</span>, NULL<span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">11</td><td>   create_hsfile<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>&#160;</td></tr><tr><td class="number">13</td><td> sav.open<span class="k2">(</span>S_FILE, ios::binary<span class="k3">|</span>ios::in<span class="k3">|</span>ios::out<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td> <span class="k1">int</span> hs_score, hs_level<span class="k2">;</span></td></tr><tr><td class="number">16</td><td> DEF <span class="c">/* typedef const int DEF */</span> recsize <span class="k2">(</span><span class="n">2</span> <span class="k3">*</span> <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>&#160;</td></tr><tr><td class="number">18</td><td> <span class="k1">if</span><span class="k2">(</span>sav.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">19</td><td>   sav.seekp<span class="k2">(</span><span class="k2">(</span>difficulty-1<span class="k2">)</span><span class="k3">*</span>recsize<span class="k2">)</span><span class="k2">;</span> <span class="c">//difficulty is 1, 2, or 3 int(I want different highscores per difficulty)</span></td></tr><tr><td class="number">20</td><td>   sav.read<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>hs_level<span class="k2">)</span>, <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>   sav.read<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>hs_score<span class="k2">)</span>, <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td> <span class="k2">}</span></td></tr><tr><td class="number">23</td><td>&#160;</td></tr><tr><td class="number">24</td><td><span class="k1">if</span><span class="k2">(</span>sav.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">25</td><td>   textprintf<span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, SCREENW <span class="k3">/</span> <span class="n">2</span>, <span class="n">0</span>, BLUE, <span class="s">"High Scores = Score=%d, Level=%d"</span>, hs_score, hs_level<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">26</td><td><span class="k1">else</span></td></tr><tr><td class="number">27</td><td>    textprintf<span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, SCREENW <span class="k3">/</span> <span class="n">2</span>, <span class="n">0</span>, BLUE, <span class="s">"COULD NOT LOAD OR CREATE HIGH SCORE FILE"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">28</td><td>&#160;</td></tr><tr><td class="number">29</td><td> <span class="c">//player is dead</span></td></tr><tr><td class="number">30</td><td> sav.seekp<span class="k2">(</span><span class="k2">(</span>difficulty-1<span class="k2">)</span><span class="k3">*</span>recsize<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">31</td><td> <span class="k1">if</span><span class="k2">(</span>score <span class="k3">&gt;</span> hs_score<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">32</td><td> sav.write<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>level<span class="k2">)</span>,<span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">33</td><td> sav.write<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>score<span class="k2">)</span>,<span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">34</td><td> <span class="k2">}</span></td></tr><tr><td class="number">35</td><td>&#160;</td></tr><tr><td class="number">36</td><td> sav.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">37</td><td>&#160;</td></tr><tr><td class="number">38</td><td>&#160;</td></tr><tr><td class="number">39</td><td><span class="c">//def of create_hsfile</span></td></tr><tr><td class="number">40</td><td>&#160;</td></tr><tr><td class="number">41</td><td><span class="k1">void</span> create_hsfile<span class="k2">(</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">42</td><td>  fstream temp<span class="k2">;</span></td></tr><tr><td class="number">43</td><td>  <span class="k1">int</span> n <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">44</td><td>&#160;</td></tr><tr><td class="number">45</td><td>  temp.open<span class="k2">(</span>S_FILE, ios::binary<span class="k3">|</span>ios::out<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">46</td><td>&#160;</td></tr><tr><td class="number">47</td><td>  <span class="k1">if</span><span class="k2">(</span> temp.is_open<span class="k2">(</span><span class="k2">)</span> <span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">48</td><td>    <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&gt;</span> <span class="n">3</span><span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>i<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">49</td><td>      temp.write<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>n<span class="k2">)</span>, <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">50</td><td>      temp.write<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>n<span class="k2">)</span>, <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">51</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">52</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">53</td><td>  </td></tr><tr><td class="number">54</td><td>  temp.close<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">55</td><td>&#160;</td></tr><tr><td class="number">56</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

there it is, score and level print some huge number like -33686019, and I&#39;m sure that the actual games score and level are correct.</p><p>does it help if I tell you that opening hssav.sav in notepad leavs me with a blank file?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (aadfo824)</author>
		<pubDate>Mon, 05 Jun 2006 05:43:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Well, a reinsterpret_cast to a char*? Don&#39;t you want a static_cast?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Mon, 05 Jun 2006 08:07:24 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No, anything I&#39;ve ever read says reinterpret_cast. Besides, switching 6 r casts to s casts gave me 6 compiler errors that weren&#39;t there before. I think static cast is only for declared vaiables.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (aadfo824)</author>
		<pubDate>Mon, 05 Jun 2006 17:10:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Okay, you&#39;re right. But you do call seekp (seek the put pointer) and then use the get pointer for access. Try seekg instead <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Mon, 05 Jun 2006 17:23:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry I haven&#39;t posted for so long. In Orlanda (not near my computer in Miami) attending the Florida FFA state convention. I changed the seek thingy to seekg before I read from the file and it still doesn&#39;t work. Which seekps should be seekgs?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (aadfo824)</author>
		<pubDate>Sun, 11 Jun 2006 09:07:39 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>hmm, the only thing I can think of is maybe opening the file in append mode instead of truncate:<br /><span class="source-code">ios::ate</span>(this is a maybe)</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
In Orlanda (not near my computer in Miami) attending the Florida FFA state convention.
</p></div></div><p>Orlando, and did you mean FAA?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sun, 11 Jun 2006 09:40:11 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Didn&#39;t work. Maybe it helps if I tell you that the following code is repeated once per time the player plays. Basically, I put all the code that needs to be repeated every time the player dies into a function bool game(). it returns true if it needs to be run again. Main now looks like this 
</p><div class="source-code snippet"><div class="inner"><pre><span class="c">//includes</span>
<span class="k1">int</span> main<span class="k2">{</span>
 <span class="c">//initialize allegro, load images, open file or create</span>
 <span class="k1">bool</span> again<span class="k2">;</span>

 <span class="k1">do</span><span class="k2">{</span>
   again <span class="k3">=</span> game<span class="k2">(</span><span class="k2">)</span><span class="k2">;</span>
 <span class="k2">}</span><span class="k1">while</span><span class="k2">(</span>game<span class="k2">)</span><span class="k2">;</span>

 <span class="c">// close down</span>
<span class="k2">}</span>
</pre></div></div><p>

Works like a charm. the following code resides in game and not main.</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td> <span class="k1">if</span><span class="k2">(</span>sav.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">2</td><td>   sav.seekp<span class="k2">(</span><span class="k2">(</span>difficulty-1<span class="k2">)</span><span class="k3">*</span>recsize<span class="k2">)</span><span class="k2">;</span> <span class="c">//difficulty is 1, 2, or 3 int(I want different highscores per difficulty)</span></td></tr><tr><td class="number">3</td><td>   sav.read<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>hs_level<span class="k2">)</span>, <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td>   sav.read<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>hs_score<span class="k2">)</span>, <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td> <span class="k2">}</span></td></tr><tr><td class="number">6</td><td>&#160;</td></tr><tr><td class="number">7</td><td><span class="k1">if</span><span class="k2">(</span>sav.is_open<span class="k2">(</span><span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">8</td><td>   textprintf<span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, SCREENW <span class="k3">/</span> <span class="n">2</span>, <span class="n">0</span>, BLUE, <span class="s">"High Scores = Score=%d, Level=%d"</span>, hs_score, hs_level<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td><span class="k1">else</span></td></tr><tr><td class="number">10</td><td>    textprintf<span class="k2">(</span>buffer, <a href="http://www.allegro.cc/manual/font" target="_blank"><span class="a">font</span></a>, SCREENW <span class="k3">/</span> <span class="n">2</span>, <span class="n">0</span>, BLUE, <span class="s">"COULD NOT LOAD OR CREATE HIGH SCORE FILE"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td> <span class="c">//player is dead</span></td></tr><tr><td class="number">13</td><td> sav.seekp<span class="k2">(</span><span class="k2">(</span>difficulty-1<span class="k2">)</span><span class="k3">*</span>recsize<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td> <span class="k1">if</span><span class="k2">(</span>score <span class="k3">&gt;</span> hs_score<span class="k2">)</span><span class="k2">{</span></td></tr><tr><td class="number">15</td><td> sav.write<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>level<span class="k2">)</span>,<span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td> sav.write<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>score<span class="k2">)</span>,<span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td> <span class="k2">}</span></td></tr></tbody></table></div></div><p>

And I did mean FFA(Future Farmers of America). Its an agricultural youth organization that I&#39;m involved in for school. I went to recieve an award for excellent poultry judging and to have fun.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (aadfo824)</author>
		<pubDate>Sun, 11 Jun 2006 09:59:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
</p><div class="source-code snippet"><div class="inner"><pre>   sav.seekp<span class="k2">(</span><span class="k2">(</span>difficulty-1<span class="k2">)</span><span class="k3">*</span>recsize<span class="k2">)</span><span class="k2">;</span> <span class="c">//difficulty is 1, 2, or 3 int(I want different highscores per difficulty)</span>
   sav.read<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>hs_level<span class="k2">)</span>, <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
   sav.read<span class="k2">(</span><span class="k1">reinterpret_cast</span><span class="k3">&lt;</span><span class="k1">char</span><span class="k3">*</span><span class="k3">&gt;</span><span class="k2">(</span><span class="k3">&amp;</span>hs_score<span class="k2">)</span>, <span class="k1">sizeof</span><span class="k2">(</span><span class="k1">int</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div></div><p>You are still using seekp, which seeks what you write to, not where you read from.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I went to recieve an award for excellent poultry judging and to have fun.
</p></div></div><p>You were judged on your ability to judge poultry? <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (CGamesPlay)</author>
		<pubDate>Sun, 11 Jun 2006 17:52:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Also, in the C language, you use / to separate paths.
</p></div></div><p>
Not the language. The language itself doesn&#39;t even know such things as files exist. Quite a lot of libraries (including stl and libc) use &#39;/&#39; though. The win32 api, however, doesn&#39;t. (Why one would use that for opening files is a different story though).
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Tobias Dammers)</author>
		<pubDate>Sun, 11 Jun 2006 20:50:00 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Sorry I should have edited the post. After you said &quot;try seekg instead&quot;, I did change it.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (aadfo824)</author>
		<pubDate>Sun, 11 Jun 2006 21:27:44 +0000</pubDate>
	</item>
</rss>
