<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[bitmuster --&amp;gt; zahl?]]></title><description><![CDATA[<p>hallo,</p>
<p>aus einer pgm-datei möchte ich das bitmuster einlesen, doch ich bin mir nicht sicher, ob es klappt. eine pgm-datei sieht so aus:</p>
<p>Identifikation: 'P5'<br />
WHITESPACE<br />
Bildbreite (ASCII Dezimal)<br />
WHITESPACE<br />
Bildhöhe (ASCII Dezimal)<br />
WHITESPACE<br />
maximaler Grauwert [255 oder kleiner] (ASCII Dezimal)<br />
WHITESPACE<br />
Bilddaten in binärer Form (Breite*Höhe)<br />
(Pro Pixel jeweils ein Wert zwischen 0 und dem angegebenen Maximalwert.)</p>
<p>ich öffne die datei mit einem ifstream, schreibe die daten in ein array of char (buffer) und möchte nur das bitmuster daraus kopieren (also die bilddaten). mit dem zugriff buffer[stand], wobei stand eine 0&lt;=stand&lt;laenge, bekomme ich den zugriff auf einzelne zeichen. mit z.b. buffer[0] bekomme ich wirklich das &quot;P&quot; am anfang der pgm-datei. doch nach dem letzten whitespace bekomme ich mit cout &lt;&lt; buffer[0] nur murks raus - klar, ist ja auch das bitmuster. doch dieses bitmuster möchte ich nun wieder in eine zahl wandeln, doch da fehlt mir der ansatz. cout &lt;&lt; (int)buffer[zahl] liefert mir zwar zahlen, aber nur merkwürdige: viel zu große, negative - also ganz falsche zahlen. dabei können diese zahlen nur zwischen 0 und 255 groß sein...</p>
<p>auch mit printf() und %u, %d, ... habe ich es nicht hinbekommen, ordentliche zahlen auszugeben. deshalb bitte ich euch um hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> benötige ich einen ganz anderen befehl? oder denke ich ganz falsch?</p>
<p>falls es hilft, hier mal ein ausschnitt aus dem quellcode:</p>
<pre><code class="language-cpp">ifstream in;
in.open(&quot;blablupp.pgm&quot;, ios::binary);

in.seekg (0, ios::end);
laenge = in.tellg();
in.seekg (0, ios::beg);

buffer = new char [laenge];

in.read(buffer, laenge);

in.close();

cout &lt;&lt; (int)buffer[stand];   // da kommt nichts brauchbares mehr raus...
</code></pre>
<p>ich würde mich über einen tipp sehr freuen,<br />
danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>martin</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/268489/bitmuster-gt-zahl</link><generator>RSS for Node</generator><lastBuildDate>Tue, 01 Sep 2026 17:52:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/268489.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Jun 2010 20:10:46 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to bitmuster --&amp;gt; zahl? on Wed, 09 Jun 2010 20:10:46 GMT]]></title><description><![CDATA[<p>hallo,</p>
<p>aus einer pgm-datei möchte ich das bitmuster einlesen, doch ich bin mir nicht sicher, ob es klappt. eine pgm-datei sieht so aus:</p>
<p>Identifikation: 'P5'<br />
WHITESPACE<br />
Bildbreite (ASCII Dezimal)<br />
WHITESPACE<br />
Bildhöhe (ASCII Dezimal)<br />
WHITESPACE<br />
maximaler Grauwert [255 oder kleiner] (ASCII Dezimal)<br />
WHITESPACE<br />
Bilddaten in binärer Form (Breite*Höhe)<br />
(Pro Pixel jeweils ein Wert zwischen 0 und dem angegebenen Maximalwert.)</p>
<p>ich öffne die datei mit einem ifstream, schreibe die daten in ein array of char (buffer) und möchte nur das bitmuster daraus kopieren (also die bilddaten). mit dem zugriff buffer[stand], wobei stand eine 0&lt;=stand&lt;laenge, bekomme ich den zugriff auf einzelne zeichen. mit z.b. buffer[0] bekomme ich wirklich das &quot;P&quot; am anfang der pgm-datei. doch nach dem letzten whitespace bekomme ich mit cout &lt;&lt; buffer[0] nur murks raus - klar, ist ja auch das bitmuster. doch dieses bitmuster möchte ich nun wieder in eine zahl wandeln, doch da fehlt mir der ansatz. cout &lt;&lt; (int)buffer[zahl] liefert mir zwar zahlen, aber nur merkwürdige: viel zu große, negative - also ganz falsche zahlen. dabei können diese zahlen nur zwischen 0 und 255 groß sein...</p>
<p>auch mit printf() und %u, %d, ... habe ich es nicht hinbekommen, ordentliche zahlen auszugeben. deshalb bitte ich euch um hilfe <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> benötige ich einen ganz anderen befehl? oder denke ich ganz falsch?</p>
<p>falls es hilft, hier mal ein ausschnitt aus dem quellcode:</p>
<pre><code class="language-cpp">ifstream in;
in.open(&quot;blablupp.pgm&quot;, ios::binary);

in.seekg (0, ios::end);
laenge = in.tellg();
in.seekg (0, ios::beg);

buffer = new char [laenge];

in.read(buffer, laenge);

in.close();

cout &lt;&lt; (int)buffer[stand];   // da kommt nichts brauchbares mehr raus...
</code></pre>
<p>ich würde mich über einen tipp sehr freuen,<br />
danke <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909718</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909718</guid><dc:creator><![CDATA[inspire]]></dc:creator><pubDate>Wed, 09 Jun 2010 20:10:46 GMT</pubDate></item><item><title><![CDATA[Reply to bitmuster --&amp;gt; zahl? on Wed, 09 Jun 2010 22:08:38 GMT]]></title><description><![CDATA[<p>Also der Code ist ja so ziemlich der von hier:<br />
<a href="http://www.cplusplus.com/reference/iostream/istream/read/" rel="nofollow">http://www.cplusplus.com/reference/iostream/istream/read/</a><br />
An dem scheint es nicht zu liegen.</p>
<p>Ich denke du hast eher ein Denkproblem.<br />
Geh doch mal mit dem Debugger durch. Wenn du das File eingelesen hast und es in das Array gefüllt hast, dann kannst du dir die Daten ja im Debugger anschauen. Da solltest du sehen, ob es korrekt ist.</p>
<p>Du solltest da mit einmal lesen die komplette Datei drin haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909783</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 09 Jun 2010 22:08:38 GMT</pubDate></item><item><title><![CDATA[Reply to bitmuster --&amp;gt; zahl? on Thu, 10 Jun 2010 07:12:50 GMT]]></title><description><![CDATA[<p>das lesen scheint zu funktionieren. wenn ich einen wert aus buffer[stand] kopiere und ihn in einer ascii-tabelle suche (beispiel &quot;ñ&quot;) bekomme ich die richtige zahl (241) heraus. und genau diese zahl möchte ich nun darstellen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909859</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909859</guid><dc:creator><![CDATA[inspire]]></dc:creator><pubDate>Thu, 10 Jun 2010 07:12:50 GMT</pubDate></item><item><title><![CDATA[Reply to bitmuster --&amp;gt; zahl? on Thu, 10 Jun 2010 08:51:33 GMT]]></title><description><![CDATA[<p>inspire schrieb:</p>
<blockquote>
<p>das lesen scheint zu funktionieren. wenn ich einen wert aus buffer[stand] kopiere und ihn in einer ascii-tabelle suche (beispiel &quot;ñ&quot;) bekomme ich die richtige zahl (241) heraus. und genau diese zahl möchte ich nun darstellen...</p>
</blockquote>
<p>Das machst du aber eigentlich richtig mit dem gezeigten Cast.</p>
<p>Gib uns mal ein compilierbares(!) Beispiel das deinen Fehler zeigt, eine kurze Beispiel PGM-Datei (ein paar Handvoll Zeichen reichen), deine Ausgabe zu dieser Datei und deine Meinung, was eigentlich herauskommen sollte.</p>
<p>Ich vermute nämlich, dass du etwas anderes erwartest als du beschreibst.</p>
<p>Außerdem sollte man sagen, dass chars auch nur Zahlen sind, so lange man nicht versucht sie auszugeben. Wenn es dir darum geht mit Zahlen weiterzurechnen, dann kannst du einfach die eingelesenen chars nehmen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1909883</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1909883</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 10 Jun 2010 08:51:33 GMT</pubDate></item><item><title><![CDATA[Reply to bitmuster --&amp;gt; zahl? on Thu, 10 Jun 2010 17:26:43 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Außerdem sollte man sagen, dass chars auch nur Zahlen sind, so lange man nicht versucht sie auszugeben. Wenn es dir darum geht mit Zahlen weiterzurechnen, dann kannst du einfach die eingelesenen chars nehmen.</p>
</blockquote>
<p>der hinweis hat mir gefehlt, vielen dank!! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /> die weitere verarbeitung der chars funktioniert wirklich einwandfrei, die ganzen merkwürdigen zeichen haben mich nur stutzig gemacht. deshalb habe ich versucht, ihre dezimalzahl auszugeben, um sie zu überprüfen. also sowas: aus dem char &quot;a&quot; (zeichen) in der ausgabe wollte ich eine &quot;97&quot; (ascii dezimal) machen. also von einer tabellenspalte in die andere:<br />
<a href="http://www.torsten-horn.de/techdocs/ascii.htm" rel="nofollow">http://www.torsten-horn.de/techdocs/ascii.htm</a></p>
<p>ich benötige es jetzt nicht mehr, aber dennoch würde es mich interessieren, wie man das machen könnte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
<p>gruß<br />
martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910210</guid><dc:creator><![CDATA[inspire]]></dc:creator><pubDate>Thu, 10 Jun 2010 17:26:43 GMT</pubDate></item><item><title><![CDATA[Reply to bitmuster --&amp;gt; zahl? on Thu, 10 Jun 2010 17:35:21 GMT]]></title><description><![CDATA[<p>inspire schrieb:</p>
<blockquote>
<p>ich benötige es jetzt nicht mehr, aber dennoch würde es mich interessieren, wie man das machen könnte <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
</blockquote>
<p>Eigentlich so: <code>cout &lt;&lt; static_cast&lt;int&gt;('a');</code> . Gibt 97 auf ASCII kompatiblen Zeichensätzen.<br />
Aber das hattest du ja im Prinzip so, weswegen ich mal annehmen, dass noch irgendein anderer Fehler im Programm war.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910217</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910217</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 10 Jun 2010 17:35:21 GMT</pubDate></item><item><title><![CDATA[Reply to bitmuster --&amp;gt; zahl? on Thu, 10 Jun 2010 17:46:44 GMT]]></title><description><![CDATA[<p>es liegt wohl an ein paar besonderen zeichen, wie z.b. dem &quot;ÿ&quot;.<br />
bei<br />
cout &lt;&lt; static_cast&lt;int&gt;('ÿ');<br />
ist die ausgabe eine -1, obwohl die ansi-zahl laut tabelle eine 255 wäre...die ascii-zeichen funktionieren alle, die ansi-erweiterungen anscheinend nicht.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910230</guid><dc:creator><![CDATA[inspire]]></dc:creator><pubDate>Thu, 10 Jun 2010 17:46:44 GMT</pubDate></item><item><title><![CDATA[Reply to bitmuster --&amp;gt; zahl? on Thu, 10 Jun 2010 17:50:56 GMT]]></title><description><![CDATA[<p>inspire schrieb:</p>
<blockquote>
<p>es liegt wohl an ein paar besonderen zeichen, wie z.b. dem &quot;ÿ&quot;.<br />
bei<br />
cout &lt;&lt; static_cast&lt;int&gt;('ÿ');<br />
ist die ausgabe eine -1, obwohl die ansi-zahl laut tabelle eine 255 wäre...die ascii-zeichen funktionieren alle, die ansi-erweiterungen anscheinend nicht.</p>
</blockquote>
<p>Das ist normal. char kann auch ein vorzeichenbehafteter Typ sein. Dann sind die Zahlen &gt;127 negativ.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910233</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 10 Jun 2010 17:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to bitmuster --&amp;gt; zahl? on Thu, 10 Jun 2010 17:55:14 GMT]]></title><description><![CDATA[<p>ah ich verstehe! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> danke dir!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1910239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1910239</guid><dc:creator><![CDATA[inspire]]></dc:creator><pubDate>Thu, 10 Jun 2010 17:55:14 GMT</pubDate></item></channel></rss>