<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>C sucks. More specifically, sprintf() sucks.</title>
		<link>http://www.allegro.cc/forums/view/567043</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Fri, 17 Feb 2006 01:35:08 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Okay, I&#39;m trying to decipher why Thomas Harte&#39;s racing game crashes on me when I compile it. It took me a bit of time to track down tonight, but I finally figured it out; DynamicObjectType::SetWidth() is the culprit. Okay, it&#39;s one line of math, straight numbers .... hmmmm, twice he&#39;s accessing the h member of BITMAP for an array of *BITMAPs called AllAngles[]. Could they be NULL .....</p><p>Glory be; they are! So I hunt down the initialization code ....
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">bool</span> DynamicObjectType::Open<span class="k2">(</span><span class="k1">char</span> <span class="k3">*</span>namebase<span class="k2">)</span>
<span class="k2">{</span>
  <span class="k1">char</span> InputName<span class="k2">[</span><span class="n">256</span><span class="k2">]</span><span class="k2">;</span>
  <span class="k1">int</span> c <span class="k3">=</span> <span class="n">48</span><span class="k2">;</span>
  <span class="k1">while</span><span class="k2">(</span>c--<span class="k2">)</span>
  <span class="k2">{</span>
    <a href="http://www.delorie.com/djgpp/doc/libc/libc_737.html" target="_blank">sprintf</a><span class="k2">(</span>InputName, <span class="s">"%s%02x.bmp"</span>, namebase, c<span class="k2">)</span><span class="k2">;</span>
    <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span><span class="k2">(</span>AllAngles<span class="k2">[</span>c<span class="k2">]</span> <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_bmp" target="_blank"><span class="a">load_bmp</span></a><span class="k2">(</span>InputName, NULL<span class="k2">)</span><span class="k2">)</span><span class="k2">)</span>
      <span class="k1">return</span> <span class="k1">false</span><span class="k2">;</span>
  <span class="k2">}</span>

  <span class="k1">return</span> <span class="k1">true</span><span class="k2">;</span>
<span class="k2">}</span>
</pre></div></div><p>

Now, this is innocent enough; it&#39;s loading from a folder named &quot;art&quot; 48 files named &quot;carXX.bmp&quot; (where xx is 00 to 2f in hexidecimal; 48 files). The function is getting called with the argument &quot;car&quot; in main(), and when I added code to check to see if it was failing, sure enough, this function returns false.</p><div class="source-code snippet"><div class="inner"><pre>  <span class="k1">if</span><span class="k2">(</span><span class="k3">!</span>Car.Open<span class="k2">(</span><span class="s">"car"</span><span class="k2">)</span><span class="k2">)</span>
  <span class="k2">{</span>
    <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">"sprintf() sucks!!\n"</span><span class="k2">)</span><span class="k2">;</span>
    <span class="k1">return</span> <span class="n">2</span><span class="k2">;</span>
  <span class="k2">}</span>
</pre></div></div><p>

I have half a mind to rip all this C-string crap out and #include &lt;string&gt; for the win, but I&#39;m curious why it&#39;s not working, mostly because I&#39;m lazy and there&#39;s probably an easy solution. That %s%02x stuff makes my brain hurt though. And no, adding an &quot;art\\&quot; or an &quot;art/&quot; directory to the string didn&#39;t help.</p><p>Complete code is <a href="http://members.allegro.cc/ThomasHarte/files/driving/DrivingSource.zip">here</a>, not hard to find the relevant bits. Also no disrespect to TH for what I&#39;m sure is a fine engine if I can ever make it run. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Wed, 15 Feb 2006 11:44:46 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>First guess, the bitmaps aren&#39;t there.<br />Second guess, you are in a case sensitive environment and it fails with the a-f range.  Try changing 02x with 02X
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Wed, 15 Feb 2006 11:49:57 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Bitmaps are there, case didn&#39;t matter. Shouldn&#39;t the art directory be coded in there somewhere?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Wed, 15 Feb 2006 11:54:17 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Are you compiling with MSVC (in example, putting the executable files in a Debug/ or Release/ directory)? Tried moving the executable to the same directory of the bitmaps?  You can try hardcoding the full path to the stuff (<i>sprintf(InputName, &quot;C:/test/art/%s%02x.bmp&quot;, namebase, c);</i>) to see if that works. If so, it is a problem with the relative location. Note that directories with spaces &quot;may&quot; break the loading function somehow.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Wed, 15 Feb 2006 11:57:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
I&#39;m compiling in MinGW and moving the executable to the correct directory after compiling. That&#39;s why I&#39;m asking why &quot;art&quot; isn&#39;t there; the other directories and loading work fine ....
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Wed, 15 Feb 2006 12:04:38 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>For sure the program works when you move all the files inside Audio, all the bitmaps, dat and config files in the root and the generated executable inside the art directory. So, yes, even if you add art/ when loading the bitmaps, you still need to add Audio/ to the similar function where the samples are loaded.</p><p>(Edited: Geez, broke the 10k mark today... reaching you, 23! <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />)
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (ReyBrujo)</author>
		<pubDate>Wed, 15 Feb 2006 12:10:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I&#39;m just running it the way TH set it up; from the main directory. I tried adding art/ and it still failed. So ... I dunno. I think it&#39;s just my C ignorance at work and if I don&#39;t see some sort of explanation by tomorrow, I&#39;m slapping &lt;string&gt; in there; I don&#39;t care if it doubles the executable size. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /> My left eye is twitching enough at all the hexadecimal ...</p><p>EDIT: Okay, added more checks. art/ worked; it&#39;s just crashing somewhere else now. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> I&#39;ll get on that tomorrow.</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
(Edited: Geez, broke the 10k mark today... reaching you, 23! <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" />)
</p></div></div><p>

Spammer.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Wed, 15 Feb 2006 12:15:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>1. how about some more error checking, like checking namebase&#39;s length.<br />and if its NULL.</p><p>2. try using sNprintf</p><p>3. are the bitmaps in the correct colour depth</p><p>4.  AllAngles[c]  what is the size of this array ?   i hope its not [48].</p><p>[edit]<br />5. char InputName[256];   why 256 ?    either set it to 512 or MAX_PATH.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (A J)</author>
		<pubDate>Wed, 15 Feb 2006 12:16:41 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
4. AllAngles[c] what is the size of this array ? i hope its not [48].
</p></div></div><p>
Why?
</p><div class="source-code snippet"><div class="inner"><pre><span class="k1">int</span> c <span class="k3">=</span> <span class="n">48</span><span class="k2">;</span>
<span class="k1">while</span><span class="k2">(</span>c--<span class="k2">)</span> <span class="c">// checks if(48)</span>
<span class="k2">{</span> <span class="c">// c is now 47</span>
...
</pre></div></div><p>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Kitty Cat)</author>
		<pubDate>Wed, 15 Feb 2006 13:35:48 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I have half a mind to rip all this C-string crap out and #include &lt;string&gt; for the win, but I&#39;m curious why it&#39;s not working
</p></div></div><p>
I&#39;m curious to know why you think it&#39;d make any difference wether you used sprintf or not...?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Wed, 15 Feb 2006 16:50:20 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I&#39;m curious to know why you think it&#39;d make any difference wether you used sprintf or not...?
</p></div></div><p>
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
That %s%02x stuff makes my brain hurt though.
</p></div></div><p>
It&#39;s different because I actually understand the C++ version. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Wed, 15 Feb 2006 18:55:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>So in other words: C doesn&#39;t suck... you do. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" /></p><p>Yea, try handling errors once in a while hey?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Paul Pridham)</author>
		<pubDate>Wed, 15 Feb 2006 20:11:55 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
It looks like a relative path thing to me too. It&#39;s not a C issue.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Wed, 15 Feb 2006 23:35:08 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>1. One shouldn&#39;t hardcode the number of bitmaps.<br />2. I never mix conditionals with executional code, like &quot;while(c--)&quot;, because I think it is hard to tell what&#39;s happening here. I am curious, does this first subtract, and then check for 0 ? In that case, the 0-th bitmap will never be read and then, it&#39;ll remain undefined.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Geoman)</author>
		<pubDate>Thu, 16 Feb 2006 03:41:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I am curious, does this first subtract, and then check for 0 ?
</p></div></div><p>For that you should understand the difference between c++ and ++c. In case of while (c--), first there is the check for c==0 and then c gets reduced by one (assuming c is an integer). If there would be --c then subtraction would be before the check. It is all written in language standards.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (HoHo)</author>
		<pubDate>Thu, 16 Feb 2006 03:52:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Um, no, that will check to see if c is zero, then subtract.</p><p>EDIT: BEATEN <img src="http://www.allegro.cc/forums/smileys/angry.gif" alt="&gt;:(" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Carrus85)</author>
		<pubDate>Thu, 16 Feb 2006 03:53:03 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Thanks.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Geoman)</author>
		<pubDate>Thu, 16 Feb 2006 04:53:56 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Back in the day, I traced the asm code for a cout on a 286, after 40 minutes, my eyes watered, my head hurt, I decided not to use C++ anymore.  Now, once in awhile, I find some code to do something in C++ and I try to understand it.  I can&#39;t imagine why ppl would think a constructor is better than some straightforward initialization on entry, my brain recoils in horror...  Oh well, to each his own.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Arthur Kalliokoski)</author>
		<pubDate>Thu, 16 Feb 2006 05:44:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p><b>ahem</b> yes, the problems of not properly checking return results even where I&#39;ve code leaf functions to at least partly cope.</p><p>There is also the problem of not properly supporting multiple platforms. The code as written expects all data files to be in the same directory as the executable on Windows/Linux because here in my OS X application bundle ghetto I didn&#39;t really put a lot of thought into it. My IDE copies all the data files into the Resources part of the bundle and Allegro autimatically switches there, so I&#39;ve just been stupid not thinking about the unholy mess that will create on other OSs.</p><p>Beyond that, I have no idea why manually adding folder names into the source doesn&#39;t work.</p><p>In my defence, it is only a work in progress technology demo.
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
One shouldn&#39;t hardcode the number of bitmaps.
</p></div></div><p>
In this case it is more acceptable than usual - the bitmaps are all different views of the same object, designed to allow the display a &quot;3d&quot; object using sprites, as in Doom or Mario Kart 64. I know that such an idea is very old fashioned and low tech, but it fits the mood.</p><p>Incidentally, I&#39;m still slowly working on my game that will use this engine. Having abandoned a &quot;realistic feel&quot; as a time consuming dead end - even though it means admitting that almost everyone else was right and I was wrong - I&#39;ve been working this week on a course editor. I haven&#39;t been posting because it is SDL based. It is SDL based because I consider a resizeable window (i.e. one where the user can drag expand it to their desired proportions) to be immeasurably useful for this sort of thing. In addition the event based structure of SDL makes it much easier to do very low processing cost and low FPS tools that don&#39;t become unresponsive. The editor limits itself to 10fps if possible, waking early if an input event occurs giving it about 3% CPU usage on my quite old machine. I&#39;m imagining a scenario where it is used simultaneously with a running copy of the game for proper driving tests.</p><p>A couple of screenshots:</p><p><span class="remote-thumbnail"><span class="json">{"name":"Editor1.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/6\/66d3f5734d7fbbbf63ccf6941acb081a.png","w":688,"h":746,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/6\/6\/66d3f5734d7fbbbf63ccf6941acb081a"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/6/6/66d3f5734d7fbbbf63ccf6941acb081a-240.jpg" alt="Editor1.png" width="240" height="260" /></span></p><p>This is the initial screen of the editor. I&#39;ve gone for an Outrun style branching track (branches as I plan them are a quite trivial engine modification), and on this screen the editor selects which route they will edit. A quite boring first screen. Selected route is saved from one session to the next so you usually don&#39;t spend too long here.</p><p><span class="remote-thumbnail"><span class="json">{"name":"Editor2.png","src":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/a\/d\/adeb486c44b0cf6ba4033b3f39439020.png","w":688,"h":746,"tn":"\/\/djungxnpq2nug.cloudfront.net\/image\/cache\/a\/d\/adeb486c44b0cf6ba4033b3f39439020"}</span><img src="http://www.allegro.cc//djungxnpq2nug.cloudfront.net/image/cache/a/d/adeb486c44b0cf6ba4033b3f39439020-240.jpg" alt="Editor2.png" width="240" height="260" /></span></p><p>The main editor screen. Most of it is obvious. A tilemap has been adopted for the road surface so that lanes and lane sizes can dynamically change, etc. I&#39;ve just chopped up 23&#39;s original textures to make the tiles, which hasn&#39;t worked too badly.</p><p>The main tile map section currently allows the map to be painted and objects to be placed. Corner editing will eventually go in there too, probably just through placing and rotating arrows as markers, with an eye on the not yet implemented 3d preview in the bottom right to get the curvature you want.</p><p>The &quot;floor tiles&quot; and &quot;objects&quot; bits are just palettes for selecting things to paint onto the main screen.</p><p>At the time of capture, the user is doing a copy/paste style operation. The bit highlighted in white is the copy source, the section being highlighted in purple is where that row will be duplicated.</p><p>At the top is the elevation editor. It uses quadratic Beziers much as before but now has a much more user friendly chop operation. The blue lines at the top match the blue lines in the tile area to help with orientation.</p><p>Development has been temporarily halted (about two days now) because I made a logical flaw in my planning. Of course with a tilemap it becomes important to preserve arc length, i.e. total road surface distance. I&#39;ve decided to stick with Beziers and just implement that as a hard constraint, although I considered a more physical approach that would have made the elevation graph act a bit like a piece of string. I decided that would make it too hard to maintain continuity (in the mathematical sense) using the string idea and was too busy to code today.</p><p>I expect I&#39;ll be back on an art beg within a few weeks, but I want to put together a basic playable first stage even if quite art deficient as otherwise I can&#39;t see why people should believe that things have moved on since the last big thread.</p><p>EDIT:
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Back in the day, I traced the asm code for a cout on a 286, after 40 minutes, my eyes watered, my head hurt, I decided not to use C++ anymore. Now, once in awhile, I find some code to do something in C++ and I try to understand it. I can&#39;t imagine why ppl would think a constructor is better than some straightforward initialization on entry, my brain recoils in horror... Oh well, to each his own.
</p></div></div><p>
With my investigations of Aqua lately, I&#39;ve become persuaded that Objective-C is actually a really good language, especially as it can be mixed with C and C++ in the same source files. The conceptual idea of messages rather than functions which is implemented through runtime binding to prevent messy overhead is cool, especially as it eliminates the fragile base class problem about 1,000,000 times more neatly than COM or any other method I&#39;ve seen.</p><p>As for while(n--), it&#39;s just my favoured type of loop. In the olden days it was recommended as the most efficient loop as the compare to zero and hence the branch decision is obtained &quot;for free&quot;. That won&#39;t make any odds any more, but it is just the thing I automatically reach for now.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Harte)</author>
		<pubDate>Thu, 16 Feb 2006 06:19:28 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>That&#39;s hot TH. I was thinking about your game the other day and wanted to post asking about it. Guess you saved me the troubled <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Billybob)</author>
		<pubDate>Thu, 16 Feb 2006 06:56:21 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
It looks like a relative path thing to me too. It&#39;s not a C issue.
</p></div></div><p>
That was the thing to be determined, yup. Those funky hieroglyphics give me a headache ....
</p><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I expect I&#39;ll be back on an art beg within a few weeks
</p></div></div><p>
Yeah, I had assumed my main contributions would be art. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /> I&#39;m just playing with it to get back in the swing ... I envision myself making a lot of 3D cars and rendering them from 48 angles ....</p><p>And that reminds me, I gotta make a Super Mario Kart clone engine too. Too cool to pass up for the effort. <img src="http://www.allegro.cc/forums/smileys/cool.gif" alt="8-)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Thu, 16 Feb 2006 11:17:01 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Those funky hieroglyphics give me a headache ....
</p></div></div><p>And this doesn&#39;t?<br /><span class="source-code">cout <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="s">"FOOB "</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> setfill<span class="k2">(</span><span class="s">'0'</span><span class="k2">)</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> setw<span class="k2">(</span><span class="n">40</span><span class="k2">)</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> <span class="n">100</span> <span class="k3">&lt;</span><span class="k3">&lt;</span> endl<span class="k2">;</span></span></p><p>I&#39;ll tell you this now, I will always prefer the following over that:<br /><span class="source-code"><a href="http://www.delorie.com/djgpp/doc/libc/libc_624.html" target="_blank">printf</a><span class="k2">(</span><span class="s">"FOOB %040i\n"</span>, <span class="n">100</span><span class="k2">)</span><span class="k2">;</span></span>
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Thu, 16 Feb 2006 11:40:36 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>The first may be longwinded, but at least you can read it with minimal effort. Hell, you barely need to know C++ to understand it, while your version I gotta hit the C reference site to figure out the codes. <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>Just trolling at this point ...
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Thu, 16 Feb 2006 11:50:27 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>What? You &quot;Know C/C++&quot; and can&#39;t read a printf format? <img src="http://www.allegro.cc/forums/smileys/shocked.gif" alt=":o" /></p><p><img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Thomas Fjellstrom)</author>
		<pubDate>Thu, 16 Feb 2006 13:04:45 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
The first may be longwinded, but at least you can read it with minimal effort. Hell, you barely need to know C++ to understand it
</p></div></div><p>
I know C, C++ and sevarl other languages and I had to look at the printf() statement to figure out what that line of C++ code was doing.<br />Interesting, isn&#39;t it, how what is intuitive and easy and what is not is almost solely determined by what you&#39;re used to?
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Evert)</author>
		<pubDate>Thu, 16 Feb 2006 14:59:50 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>I could understand both. <img src="http://www.allegro.cc/forums/smileys/tongue.gif" alt=":P" /></p><p>Although the C version is more straightforward, quicker to type, and less ick-looking.
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (BAF)</author>
		<pubDate>Thu, 16 Feb 2006 18:16:53 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
Interesting, isn&#39;t it, how what is intuitive and easy and what is not is almost solely determined by what you&#39;re used to?
</p></div></div><p>
I would say I&#39;m equally used to both; I don&#39;t use cout. So no, it&#39;s not interesting at all. <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (23yrold3yrold)</author>
		<pubDate>Thu, 16 Feb 2006 18:57:59 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>
Suck it up.. Sprintf is cool! <img src="http://www.allegro.cc/forums/smileys/wink.gif" alt=";)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Richard Phipps)</author>
		<pubDate>Fri, 17 Feb 2006 00:05:52 +0000</pubDate>
	</item>
	<item>
		<description><![CDATA[<div class="mockup v2"><div class="quote_container"><div class="title">Quote:</div><div class="quote"><p>
I know C, C++ and sevarl other languages and I had to look at the printf() statement to figure out what that line of C++ code was doing.<br />Interesting, isn&#39;t it, how what is intuitive and easy and what is not is almost solely determined by what you&#39;re used to?
</p></div></div><p>
Wooahhh was there some Evert bashing going on here?! Bad move!
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Ceagon Xylas)</author>
		<pubDate>Fri, 17 Feb 2006 01:35:08 +0000</pubDate>
	</item>
</rss>
