<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>Loading a map from a text file</title>
		<link>http://www.allegro.cc/forums/view/586643</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Tue, 25 Jul 2006 04:07:31 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, so I&#39;ve had a problem for awhile, I&#39;m trying to load a map from a text file.  The map has 24 X 24 numbers and each number represents a tile.  This is my current loading code (I&#39;m using C) :
</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">int</span> i, j<span class="k2">;</span></td></tr><tr><td class="number">2</td><td> writeToLog<span class="k2">(</span><span class="s">"Opening Map File...\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td> mapfile <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"map.txt"</span>, <span class="s">"r"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td> <span class="k1">if</span><span class="k2">(</span>mapfile <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span></td></tr><tr><td class="number">5</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">"Map failed to load!"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td> <span class="k1">char</span> ch<span class="k2">;</span></td></tr><tr><td class="number">7</td><td> writeToLog<span class="k2">(</span><span class="s">"Getting first character...\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td> ch <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_381.html" target="_blank">getc</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td> <span class="k1">while</span><span class="k2">(</span>ch <span class="k3">!</span><span class="k3">=</span> EOF<span class="k2">)</span></td></tr><tr><td class="number">10</td><td> <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>  writeToLog<span class="k2">(</span><span class="s">"First while loop\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>  map<span class="k3">&lt;</span>i&gt;<span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>ch<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>  writeToLog<span class="k2">(</span><span class="s">"Setting map to character from map"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>  ch <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_381.html" target="_blank">getc</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>  writeToLog<span class="k2">(</span><span class="s">"Got the character...\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>  <span class="k1">if</span><span class="k2">(</span>i <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">)</span></td></tr><tr><td class="number">17</td><td>   i<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  <span class="k1">else</span></td></tr><tr><td class="number">19</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">20</td><td>   i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>   j<span class="k3">+</span><span class="k3">+</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> <span class="k2">}</span></td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</td><td> <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>
When I take out
</p><div class="source-code snippet"><div class="inner"><pre>map<span class="k3">&lt;</span>i&gt;<span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>ch<span class="k2">;</span>
</pre></div></div><p>
it works, but then again that&#39;s the key part.  When it does work, it just ends up loading the same tile repeated.  Can anyone help?  (The source is attached)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Mon, 24 Jul 2006 06:47:29 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Why not use a for loop and make the whole code much cleaner? There is no real need to check for EOF if you know the amount of tiles beforehand.</p><p>Anyway, getc() returns an int so there is no need to make ch a char and cast it later. Other than that I don&#39;t know what to say. </p><p>BTW, the source isn&#39;t attached.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SonShadowCat)</author>
		<pubDate>Mon, 24 Jul 2006 07:18:19 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I actually used this for a bit
</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">int</span> i, j<span class="k2">;</span></td></tr><tr><td class="number">2</td><td> <span class="k1">int</span> num <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td> <span class="k1">char</span> <span class="k3">*</span>ch<span class="k2">;</span></td></tr><tr><td class="number">4</td><td> ch <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span><span class="k3">*</span><span class="k2">)</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_551.html" target="_blank">malloc</a><span class="k2">(</span><span class="n">576</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td> mapfile <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"map.txt"</span>, <span class="s">"rt"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td> <span class="k1">if</span><span class="k2">(</span>mapfile <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span></td></tr><tr><td class="number">7</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">"Map file isn't loaded correctly"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td> <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span>ch, <span class="n">576</span>, <span class="n">576</span>, mapfile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td> <span class="k1">for</span><span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">10</td><td> <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>  <span class="k1">for</span><span class="k2">(</span>j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span></td></tr><tr><td class="number">12</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">13</td><td>   map<span class="k2">[</span>j<span class="k2">]</span><span class="k3">&lt;</span>i&gt; <span class="k3">=</span> ch<span class="k2">[</span>num<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>   num<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">16</td><td> <span class="k2">}</span></td></tr><tr><td class="number">17</td><td> <a href="http://www.delorie.com/djgpp/doc/libc/libc_350.html" target="_blank">free</a><span class="k2">(</span>ch<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td> <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>
And it didn&#39;t work so well either.  <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Mon, 24 Jul 2006 09:09:15 +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"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><span class="k1">int</span> i, j<span class="k2">;</span></td></tr><tr><td class="number">2</td><td> writeToLog<span class="k2">(</span><span class="s">"Opening Map File...\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td> mapfile <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"map.txt"</span>, <span class="s">"r"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td> <span class="k1">if</span><span class="k2">(</span>mapfile <span class="k3">=</span><span class="k3">=</span> NULL<span class="k2">)</span></td></tr><tr><td class="number">5</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">"Map failed to load!"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td> <span class="k1">char</span> ch<span class="k2">;</span></td></tr><tr><td class="number">7</td><td> writeToLog<span class="k2">(</span><span class="s">"Getting first character...\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td> ch <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_381.html" target="_blank">getc</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td> <span class="k1">while</span><span class="k2">(</span>ch <span class="k3">!</span><span class="k3">=</span> EOF<span class="k2">)</span></td></tr><tr><td class="number">10</td><td> <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>  writeToLog<span class="k2">(</span><span class="s">"First while loop\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>  map<span class="k3">&lt;</span>i&gt;<span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>ch<span class="k2">;</span></td></tr><tr><td class="number">13</td><td>  writeToLog<span class="k2">(</span><span class="s">"Setting map to character from map"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>  ch <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_381.html" target="_blank">getc</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>  writeToLog<span class="k2">(</span><span class="s">"Got the character...\n"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>  <span class="k1">if</span><span class="k2">(</span>i <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">)</span></td></tr><tr><td class="number">17</td><td>   i<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  <span class="k1">else</span></td></tr><tr><td class="number">19</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">20</td><td>   i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">21</td><td>   j<span class="k3">+</span><span class="k3">+</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> <span class="k2">}</span></td></tr><tr><td class="number">24</td><td>&#160;</td></tr><tr><td class="number">25</td><td> <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>
</p></div></div><p>

I would use something more like (untested):
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td><a href="http://www.allegro.cc/manual/PACKFILE" target="_blank"><span class="a">PACKFILE</span></a> <span class="k3">*</span>mapf <span class="k3">=</span> <a href="http://www.allegro.cc/manual/pack_fopen" target="_blank"><span class="a">pack_fopen</span></a><span class="k2">(</span><span class="s">"map"</span>, <span class="s">"r"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td><span class="k1">int</span> w, h, x, y<span class="k2">;</span></td></tr><tr><td class="number">3</td><td><span class="k1">char</span> <span class="k3">*</span><span class="k3">*</span>map<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td>w <span class="k3">=</span> <a href="http://www.allegro.cc/manual/pack_igetl" target="_blank"><span class="a">pack_igetl</span></a><span class="k2">(</span>mapf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">6</td><td>h <span class="k3">=</span> <a href="http://www.allegro.cc/manual/pack_igetl" target="_blank"><span class="a">pack_igetl</span></a><span class="k2">(</span>mapf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>&#160;</td></tr><tr><td class="number">8</td><td>map <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span><span class="k3">*</span><span class="k2">)</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_551.html" target="_blank">malloc</a><span class="k2">(</span><span class="k1">sizeof</span><span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span><span class="k2">)</span> <span class="k3">*</span> w<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>&#160;</td></tr><tr><td class="number">10</td><td><span class="k1">for</span><span class="k2">(</span>x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> w<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>x<span class="k2">)</span></td></tr><tr><td class="number">11</td><td><span class="k2">{</span></td></tr><tr><td class="number">12</td><td>  map<span class="k2">[</span>x<span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span><span class="k2">)</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_551.html" target="_blank">malloc</a><span class="k2">(</span><span class="k1">sizeof</span><span class="k2">(</span><span class="k1">char</span><span class="k2">)</span> <span class="k3">*</span> h<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>  <span class="k1">for</span><span class="k2">(</span>y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> h<span class="k2">;</span> <span class="k3">+</span><span class="k3">+</span>y<span class="k2">)</span></td></tr><tr><td class="number">14</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">15</td><td>    map<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/pack_igetw" target="_blank"><span class="a">pack_igetw</span></a><span class="k2">(</span>mapf<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">16</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">17</td><td><span class="k2">}</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td><a href="http://www.allegro.cc/manual/pack_fclose" target="_blank"><span class="a">pack_fclose</span></a><span class="k2">(</span>mapf<span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

Although I have more information in my maps, that&#39;s a basic map loader. Untested though, but should work.</p><p>[edit]<br />You&#39;d have to write the map file using the inverse of whats above as it would be binary, not plain text.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Mon, 24 Jul 2006 09:15:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Too late.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SonShadowCat)</author>
		<pubDate>Mon, 24 Jul 2006 09:17:04 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What&#39;s too late?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Mon, 24 Jul 2006 09:19:13 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I was. Posted something but your reply was more extensive.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (SonShadowCat)</author>
		<pubDate>Mon, 24 Jul 2006 09:27:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>instead of
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">if</span><span class="k2">(</span>i <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">)</span>
   i<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
  <span class="k1">else</span>
  <span class="k2">{</span>
   i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span>
   j<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
  <span class="k2">}</span>
</pre></div></div><p>

try this
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">for</span><span class="k2">(</span>i<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> i<span class="k3">&lt;</span><span class="n">24</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
    <span class="k1">for</span><span class="k2">(</span>j<span class="k3">=</span><span class="n">0</span><span class="k2">;</span> j<span class="k3">&lt;</span><span class="n">24</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
        map<span class="k3">&lt;</span>i&gt;<span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>ch<span class="k2">;</span>
    <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Mon, 24 Jul 2006 09:29:14 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok I tried that, and it didn&#39;t work.  This is really annoying.  Is there any way to do it in a similiar way I was doing it?</p><p>EDIT: Paul, I tried your method as well, and it didn&#39;t work either.  &gt;&lt;
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Mon, 24 Jul 2006 09:47:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>This usually works, but is untested, so be careful!
</p><div class="source-code snippet"><div class="inner"><pre>FILE <span class="k3">*</span>fp<span class="k2">;</span>
fp<span class="k3">=</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"FILE.DAT"</span>,<span class="s">"rb"</span><span class="k2">)</span><span class="k2">;</span>
<span class="k1">if</span><span class="k2">(</span>fp<span class="k3">=</span><span class="k3">=</span>NULL<span class="k2">)</span> <span class="k2">{</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"\nFile error"</span><span class="k2">)</span><span class="k2">;</span><span class="k2">}</span>
<a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span><span class="k3">&amp;</span>my_tile, <span class="k1">sizeof</span><span class="k2">(</span>my_tile<span class="k2">)</span>, <span class="n">1</span>, fp<span class="k2">)</span><span class="k2">;</span>
<span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_313.html" target="_blank">feof</a><span class="k2">(</span>fp<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> i<span class="k3">&lt;</span><span class="n">24</span> <span class="k2">)</span><span class="k2">{</span>
  <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_313.html" target="_blank">feof</a><span class="k2">(</span>fp<span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span> j<span class="k3">&lt;</span><span class="n">24</span> <span class="k2">)</span><span class="k2">{</span>
    <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span><span class="k3">&amp;</span>my_tile, <span class="k1">sizeof</span><span class="k2">(</span>my_tile<span class="k2">)</span>, <span class="n">1</span>, fp<span class="k2">)</span><span class="k2">;</span>
    map<span class="k3">&lt;</span>i&gt;<span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span> my_tile<span class="k2">;</span>
    j<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
  <span class="k2">}</span>
  j<span class="k3">=</span><span class="n">0</span><span class="k2">;</span>  
  i<span class="k3">+</span><span class="k3">+</span><span class="k2">;</span>
<span class="k2">}</span>
<a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>fp<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul whoknows)</author>
		<pubDate>Mon, 24 Jul 2006 10:20:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>No, it didn&#39;t work.  Once again it just repeated the tiles, but this one had patches of grass in a black spot on the left. <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Mon, 24 Jul 2006 11:21:58 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;ve tested the following with a &quot;map.txt&quot; file that I&#39;ve attached, and it works.</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="p">#include &lt;stdio.h&gt;</span></td></tr><tr><td class="number">2</td><td>&#160;</td></tr><tr><td class="number">3</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">4</td><td>  </td></tr><tr><td class="number">5</td><td>  FILE <span class="k3">*</span>mapfile, <span class="k3">*</span>output<span class="k2">;</span></td></tr><tr><td class="number">6</td><td>  <span class="k1">int</span> i, j<span class="k2">;</span></td></tr><tr><td class="number">7</td><td>  <span class="k1">int</span> map<span class="k2">[</span><span class="n">24</span><span class="k2">]</span><span class="k2">[</span><span class="n">24</span><span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>  </td></tr><tr><td class="number">9</td><td>  mapfile <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"map.txt"</span>, <span class="s">"rb"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>  output <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"output"</span>, <span class="s">"w"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>  </td></tr><tr><td class="number">12</td><td>  <span class="k1">for</span> <span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">13</td><td>    </td></tr><tr><td class="number">14</td><td>    <span class="k1">for</span> <span class="k2">(</span>j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">15</td><td>      </td></tr><tr><td class="number">16</td><td>      map<span class="k3">&lt;</span>i&gt;<span class="k2">[</span>j<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_317.html" target="_blank">fgetc</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>output, <span class="s">"Read value (%d, %d): %d\n"</span>, i, j, map<span class="k3">&lt;</span>i&gt;<span class="k2">[</span>j<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>      </td></tr><tr><td class="number">19</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">20</td><td>    </td></tr><tr><td class="number">21</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">22</td><td>  </td></tr><tr><td class="number">23</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">24</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>output<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  </td></tr><tr><td class="number">26</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>&#160;</td></tr><tr><td class="number">28</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

Also attached is the output from the program, which shows it works. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Mon, 24 Jul 2006 12:17:22 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Actually when I use your attachment, the map.txt is a bunch of squares and the output has numbers ranging from 0 - around 15.  I tried this code myself, and wrote it to my output.  </p><p>This:
</p><pre>
000000000000000000000000
000000000000000000000000
000000000022220000000000
000000000022220000000000
000000000000000000000000
333333333333333333333333
333333333333333333333333
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
333333333333333333333333
333333333333333333333333
000000000000000000000000
000000000022220000000000
000000000022220000000000
000000000000000000000000
000000000000000000000000
</pre><p>

turned into this:
</p><pre>
484848484848484848484848
484848484848484848484848
131048484848484848484848
484848484848484848484848
484813104848484848484848
484850505050484848484848
484848481310484848484848
484848485050505048484848
484848484848131048484848
484848484848484848484848
484848484848484813105151
515151515151515151515151
515151515151515151511310
515151515151515151515151
515151515151515151515151
131049494949494949494949
495151494949494949494949
494913104949494949494949
494949515149494949494949
494949491310494949494949
494949494951514949494949
494949494949131049494949
494949494949495151494949
494949494949494913104949
494949494949494949515149
494949494949494949491310
494949494949494949494951
514949494949494949494949
131049494949494949494949
495151494949494949494949
494913104949494949494949
494949515149494949494949
494949491310494949494949
494949494951514949494949
494949494949131049494949
494949494949495151494949
494949494949494913105151
515151515151515151515151
515151515151515151511310
515151515151515151515151
515151515151515151515151
131048484848484848484848
484848484848484848484848
484813104848484848484848
484850505050484848484848
484848481310484848484848
484848485050505048484848
484848484848131048484848
</pre><p>
Except that the above code was all on one line.  I still can&#39;t see why it&#39;s doing this.  <img src="http://www.allegro.cc/forums/smileys/undecided.gif" alt=":-/" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Mon, 24 Jul 2006 20:49:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>48 is ASCII for 0</p><p>fopen( .., &quot;rb&quot; );  is the likely cause
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (A J)</author>
		<pubDate>Mon, 24 Jul 2006 20:56:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I actually suspected that, but I changed rb to r, then r to r+ and it all came out with ascii.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Mon, 24 Jul 2006 21:10:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Actually when I use your attachment, the map.txt is a bunch of squares and the output has numbers ranging from 0 - around 15.
</p></div></div><p>

The map.txt file is 576 (24x24) characters. Each character can be a number between 0 and 255 (though the generator I used only generated numbers between 0 and 20). You cannot see these characters (your text editor displays them as squares) as they are non-displayable characters.</p><p>Try getting a better text editor with a hex-edit mode so you can see the values:</p><p> <br /><span class="remote-thumbnail"><span class="json">{"name":"maptxttg9.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/6\/e621f2523bd89e154ee766bdbee86034.png","w":643,"h":641,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/e\/6\/e621f2523bd89e154ee766bdbee86034"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/e/6/e621f2523bd89e154ee766bdbee86034-240.jpg" alt="maptxttg9.png" width="240" height="239" /></span></p><p>If you look at the hex values, and convert them to decimal, you will see that they corrspond to the decimal values in the output file.</p><p>Obviously this approach cannot be taken if you have more than 256 values for the map data.</p><p>Here is how this map.txt file was created:</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="p">#include &lt;stdio.h&gt;</span></td></tr><tr><td class="number">2</td><td><span class="p">#include &lt;stdlib.h&gt;</span></td></tr><tr><td class="number">3</td><td><span class="p">#include &lt;time.h&gt;</span></td></tr><tr><td class="number">4</td><td>&#160;</td></tr><tr><td class="number">5</td><td><span class="k1">int</span> main<span class="k2">(</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">6</td><td>  </td></tr><tr><td class="number">7</td><td>  FILE <span class="k3">*</span>map<span class="k2">;</span></td></tr><tr><td class="number">8</td><td>  <span class="k1">int</span> i, j<span class="k2">;</span></td></tr><tr><td class="number">9</td><td>  </td></tr><tr><td class="number">10</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_739.html" target="_blank">srand</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_821.html" target="_blank">time</a><span class="k2">(</span><span class="n">0</span><span class="k2">)</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>  </td></tr><tr><td class="number">12</td><td>  map <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"map.txt"</span>, <span class="s">"wb"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>  </td></tr><tr><td class="number">14</td><td>  <span class="k1">for</span> <span class="k2">(</span>i <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> i <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> i<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">15</td><td>    </td></tr><tr><td class="number">16</td><td>    <span class="k1">for</span> <span class="k2">(</span>j <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> j <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> j<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span></td></tr><tr><td class="number">17</td><td>      </td></tr><tr><td class="number">18</td><td>      <a href="http://www.delorie.com/djgpp/doc/libc/libc_347.html" target="_blank">fputc</a><span class="k2">(</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_637.html" target="_blank">rand</a><span class="k2">(</span><span class="k2">)</span>%<span class="n">20</span>, map<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">19</td><td>      </td></tr><tr><td class="number">20</td><td>    <span class="k2">}</span></td></tr><tr><td class="number">21</td><td>    </td></tr><tr><td class="number">22</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">23</td><td>  </td></tr><tr><td class="number">24</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>map<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">25</td><td>  </td></tr><tr><td class="number">26</td><td>  <span class="k1">return</span> <span class="n">0</span><span class="k2">;</span></td></tr><tr><td class="number">27</td><td>&#160;</td></tr><tr><td class="number">28</td><td><span class="k2">}</span></td></tr></tbody></table></div></div><p>

[edit]</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Except that the above code was all on one line. I still can&#39;t see why it&#39;s doing this.
</p></div></div><p>

You are not svaing the numbers 0, 1, 2, etc. to file, you are saving the characters &#39;0&#39;, &#39;1&#39;, &#39;2&#39;, etc to file. when you read these as integers instead of characters, you will get there corresponding ASCII codes; 48, 49, 50, etc.</p><p>If you want to read the numbers 0, 1, 2, then you will need to write them as the chars with value 0, 1, 2, etc, which is what I did.</p><p>Alternatively, you can read them as chars, then subtract 48 to convert them to the numbers you want.</p><p>[edit2]</p><p>The 1310 that keeps repeating through your output is where it&#39;s reading the end of line chars 13 and 10 (under DOS/Windows).  Either write your files in a method that does not include these characters, or you will need to read each line individually to strip the end of line characters.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (LennyLen)</author>
		<pubDate>Mon, 24 Jul 2006 21:20:30 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Ok, so I have this current code:
</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td> FILE <span class="k3">*</span>mapfile <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"map.txt"</span>, <span class="s">"r+"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td> FILE <span class="k3">*</span>output <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"output.txt"</span>, <span class="s">"w"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">3</td><td> <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">4</td><td>  </td></tr><tr><td class="number">5</td><td> <span class="k1">for</span> <span class="k2">(</span>y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> </td></tr><tr><td class="number">6</td><td> <span class="k2">{</span></td></tr><tr><td class="number">7</td><td>  <span class="k1">for</span> <span class="k2">(</span>x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> </td></tr><tr><td class="number">8</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">9</td><td>   map<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_317.html" target="_blank">fgetc</a><span class="k2">(</span>mapfile<span class="k2">)</span> <span class="k3">-</span> <span class="n">48</span><span class="k2">;</span></td></tr><tr><td class="number">10</td><td>   <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>output, <span class="s">"%i"</span>, map<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">12</td><td> <span class="k2">}</span></td></tr><tr><td class="number">13</td><td>  </td></tr><tr><td class="number">14</td><td> <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td> <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>output<span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>

and when I load map:
</p><pre>
000000000000000000000000
000000000000000000000000
000000000022220000000000
000000000022220000000000
000000000000000000000000
333333333333333333333333
333333333333333333333333
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
111111111113311111111111
333333333333333333333333
333333333333333333333333
000000000000000000000000
000000000022220000000000
000000000022220000000000
000000000000000000000000
000000000000000000000000
</pre><p>

I get
</p><pre>
000000000000000000000000
-38000000000000000000000
000-38000000000022220000
000000-38000000000022220
000000000-38000000000000
000000000000-38333333333
333333333333333-38333333
333333333333333333-38111
111111113311111111111-38
111111111113311111111111
-38111111111113311111111
111-38111111111113311111
111111-38111111111113311
111111111-38111111111113
311111111111-38111111111
113311111111111-38111111
111113311111111111-38111
111111113311111111111-38
111111111113311111111111
-38333333333333333333333
333-38333333333333333333
333333-38000000000000000
000000000-38000000000022
220000000000-38000000000
022220000000000-38000000
000000000000000000-38000
000000000000000000000-49
</pre><p>

I tried a few things, but I couldn&#39;t seem to figure out why it has the negative numbers there.  Sorry Lenny that I didn&#39;t catch the binary part, I should have picked that up.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Mon, 24 Jul 2006 21:50:23 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
If you are only going to have a few tiles then just use bitmaps like I did for my Free Dungeons tutorial. It makes it much easier to change your maps in any paint program. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p><a href="http://www.reflectedgames.com/create.html">http://www.reflectedgames.com/create.html</a>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Mon, 24 Jul 2006 21:56:12 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hahaha, I was actually going to do that, but I really just wanted to learn how to load a map from a textfile rather from a bmp.  I would actually rather use your bmp method since it&#39;s easy, but I am trying to learn.  <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Mon, 24 Jul 2006 21:58:32 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Manually entering numbers in a textfile is too awkward though. You&#39;d have to write a map editor to do complex maps and then you might as well either use binary data directly with the map editor, or just use bitmaps if you have less than around 30 different tile types. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Mon, 24 Jul 2006 22:02:15 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I actually plan on writing a map editor once I&#39;m done with this.  I&#39;ll probably convert to binary once I get this working.  Would you happen to know what my current problem is?:-/
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Mon, 24 Jul 2006 22:04:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Your file reader is reading newlines.  Newlines are characters that appear at the end of a line and can be one or two characters.  Heres an easy way to fix your code.
</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="p">#include &lt;ctype.h&gt; // Add this to the top of your file</span></td></tr><tr><td class="number">2</td><td>..</td></tr><tr><td class="number">3</td><td>FILE <span class="k3">*</span>mapfile <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"map.txt"</span>, <span class="s">"r+"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">4</td><td> FILE <span class="k3">*</span>output <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"output.txt"</span>, <span class="s">"w"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">5</td><td> <span class="k1">int</span> x, y<span class="k2">;</span></td></tr><tr><td class="number">6</td><td>  </td></tr><tr><td class="number">7</td><td> <span class="k1">for</span> <span class="k2">(</span>y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> </td></tr><tr><td class="number">8</td><td> <span class="k2">{</span></td></tr><tr><td class="number">9</td><td>  <span class="k1">for</span> <span class="k2">(</span>x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> </td></tr><tr><td class="number">10</td><td>  <span class="k2">{</span></td></tr><tr><td class="number">11</td><td>   <span class="k1">int</span> c <span class="k3">=</span> <span class="s">'\0'</span><span class="k2">;</span></td></tr><tr><td class="number">12</td><td>   </td></tr><tr><td class="number">13</td><td>   <span class="k1">while</span><span class="k2">(</span><span class="k3">!</span><a href="http://www.delorie.com/djgpp/doc/libc/libc_509.html" target="_blank">isdigit</a><span class="k2">(</span>c<span class="k2">)</span><span class="k2">)</span></td></tr><tr><td class="number">14</td><td>    c <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_317.html" target="_blank">fgetc</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">15</td><td>   </td></tr><tr><td class="number">16</td><td>   map<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span> <span class="k3">=</span> c <span class="k3">-</span> <span class="n">48</span><span class="k2">;</span></td></tr><tr><td class="number">17</td><td>   <a href="http://www.delorie.com/djgpp/doc/libc/libc_345.html" target="_blank">fprintf</a><span class="k2">(</span>output, <span class="s">"%i"</span>, map<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">18</td><td>  <span class="k2">}</span></td></tr><tr><td class="number">19</td><td> <span class="k2">}</span></td></tr><tr><td class="number">20</td><td>  </td></tr><tr><td class="number">21</td><td> <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>mapfile<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">22</td><td> <a href="http://www.delorie.com/djgpp/doc/libc/libc_308.html" target="_blank">fclose</a><span class="k2">(</span>output<span class="k2">)</span><span class="k2">;</span></td></tr></tbody></table></div></div><p>
By the way, you really don&#39;t want to use the mode &quot;r+&quot;, a simple &quot;r&quot; should do just fine.  You should also really replace &#39;c - 48&#39; with &#39;atoi(c)&#39;, its much cleaner and portable.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Mon, 24 Jul 2006 22:49:31 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Originally, I used atoi, but it never worked.  It would always crash for some reason.</p><p>BTW, your method worked.  Thanks a lot!  Would you happen to know why atoi wouldn&#39;t work?  I replaced it like you said and I have stdlib.h included.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Tue, 25 Jul 2006 00:07:18 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>atoi wants a null terminated string, not a char AFAIK.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Tue, 25 Jul 2006 00:43:33 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So is <br /><tt>character - 48</tt><br />the best way to do it?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paladin)</author>
		<pubDate>Tue, 25 Jul 2006 03:51:47 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hm, well the best way i think is to put spaces inbetween each number and then use atoi.</p><p>Your map format would be something like:
</p><div class="source-code snippet"><div class="inner"><pre><span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span>
<span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span>
<span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span>
<span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span>
<span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span>
<span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">1</span> <span class="n">1</span> <span class="n">1</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span> <span class="n">0</span>
</pre></div></div><p>
and then you&#39;d read the file into a char* and call atoi on that.  And then increment past spaces.. yeah in C it kinda sucks.  Heres the C++ version to parse the above with spaces.
</p><div class="source-code snippet"><div class="inner"><pre>ifstream in<span class="k2">(</span><span class="s">"map.txt"</span><span class="k2">)</span><span class="k2">;</span>
ofstream out<span class="k2">(</span><span class="s">"output.txt"</span><span class="k2">)</span><span class="k2">;</span>

<span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> y <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> y <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> y<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
 <span class="k1">for</span><span class="k2">(</span><span class="k1">int</span> x <span class="k3">=</span> <span class="n">0</span><span class="k2">;</span> x <span class="k3">&lt;</span> <span class="n">24</span><span class="k2">;</span> x<span class="k3">+</span><span class="k3">+</span><span class="k2">)</span> <span class="k2">{</span>
  in <span class="k3">&gt;</span><span class="k3">&gt;</span> map<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k2">;</span>
  out <span class="k3">&lt;</span><span class="k3">&lt;</span> map<span class="k2">[</span>x<span class="k2">]</span><span class="k2">[</span>y<span class="k2">]</span><span class="k2">;</span>
 <span class="k2">}</span>
<span class="k2">}</span>
</pre></div></div><p>
This code does the same as the C code in my last post did, except that it assumes there are spaces inbetween the numbers.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ImLeftFooted)</author>
		<pubDate>Tue, 25 Jul 2006 04:07:31 +0000</pubDate>
	</item>
</rss>
