<?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[fstream-Problem]]></title><description><![CDATA[<p>Ich habe eine normale txt-file der Form:</p>
<pre><code>#2009-Nov-28
 15:24:26
</code></pre>
<p>Normalerweise soll die Position des # ermittelt werden und später verwendet um zu prüfen ob es immernoch der Gleiche Tag ist. Aber ich komme immer auf die Falsche Position und es wird immer der Falsche Output erzeugt.</p>
<pre><code>#2009-Nov-28
 15:35:03
#2009-Nov-28
 15:35:04
</code></pre>
<p>anstatt von:</p>
<pre><code>#2009-Nov-28
 15:35:03
 15:35:04
</code></pre>
<p>Hier mal der kritische Code... habe auch schon konstrukte mit getline() gehabt doch da hat es teilweise einfach die # übersprungen...</p>
<pre><code class="language-cpp">std::ifstream gamma;
  r_file.open(&quot;test.txt&quot;);

  if(r_file.is_open()){
    std::size_t dummy = std::string::npos;
    char c;

    while(!r_file.eof()){
      c = r_file.get();
      if('#'== c){
        dummy = r_file.tellg();
        //std::cout &lt;&lt; dummy2 &lt;&lt; &quot;:&quot; &lt;&lt; c &lt;&lt; std::endl;
      }
    }
[...]
</code></pre>
<p>Mit der cout zeile kommen eig immer ergebnisse wie : &quot;#:5&quot;, die ja eigentlich &quot;c:0&quot; sein müssten.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/255282/fstream-problem</link><generator>RSS for Node</generator><lastBuildDate>Sat, 12 Sep 2026 02:27:24 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/255282.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 28 Nov 2009 14:40:02 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to fstream-Problem on Sat, 28 Nov 2009 14:40:02 GMT]]></title><description><![CDATA[<p>Ich habe eine normale txt-file der Form:</p>
<pre><code>#2009-Nov-28
 15:24:26
</code></pre>
<p>Normalerweise soll die Position des # ermittelt werden und später verwendet um zu prüfen ob es immernoch der Gleiche Tag ist. Aber ich komme immer auf die Falsche Position und es wird immer der Falsche Output erzeugt.</p>
<pre><code>#2009-Nov-28
 15:35:03
#2009-Nov-28
 15:35:04
</code></pre>
<p>anstatt von:</p>
<pre><code>#2009-Nov-28
 15:35:03
 15:35:04
</code></pre>
<p>Hier mal der kritische Code... habe auch schon konstrukte mit getline() gehabt doch da hat es teilweise einfach die # übersprungen...</p>
<pre><code class="language-cpp">std::ifstream gamma;
  r_file.open(&quot;test.txt&quot;);

  if(r_file.is_open()){
    std::size_t dummy = std::string::npos;
    char c;

    while(!r_file.eof()){
      c = r_file.get();
      if('#'== c){
        dummy = r_file.tellg();
        //std::cout &lt;&lt; dummy2 &lt;&lt; &quot;:&quot; &lt;&lt; c &lt;&lt; std::endl;
      }
    }
[...]
</code></pre>
<p>Mit der cout zeile kommen eig immer ergebnisse wie : &quot;#:5&quot;, die ja eigentlich &quot;c:0&quot; sein müssten.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814584</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814584</guid><dc:creator><![CDATA[Razor]]></dc:creator><pubDate>Sat, 28 Nov 2009 14:40:02 GMT</pubDate></item><item><title><![CDATA[Reply to fstream-Problem on Sat, 28 Nov 2009 15:47:41 GMT]]></title><description><![CDATA[<p>Ich denk es muss irgendwie an den .tellg() methoden liegen... hat jmd eine Lösung parat? Es dürfte ja eigentlich nicht passieren das durch den Aufruf von Get die interne Position des Get-Pointers um 7 verschiebt... oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814614</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814614</guid><dc:creator><![CDATA[Razor]]></dc:creator><pubDate>Sat, 28 Nov 2009 15:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to fstream-Problem on Sat, 28 Nov 2009 19:26:23 GMT]]></title><description><![CDATA[<p>Wie wäre es mal, dafür schlicht ANSI-C zu verwenden?<br />
Du brauchst dann zwei Strings, einen für die Eingabe und einen für die aufbereitete Ausgabe (ohne #). Lässt sich einfach in einer Schleife erledigen mit Einfügen des Nullzeichens '\0' versteht sich. Die Länge des Eingabestrings bekommst du mit len = strlen(Eingabestring). Ist eine einfache Angelegenheit. Dafür braucht man nicht die String-Klasse von C++.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814693</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Sat, 28 Nov 2009 19:26:23 GMT</pubDate></item><item><title><![CDATA[Reply to fstream-Problem on Sat, 28 Nov 2009 23:47:24 GMT]]></title><description><![CDATA[<p>Ich weiß nicht ob das wirklich die Lösung ist, da ich das letzte vorkommen eines bestimmten, formatierten Teil einer Datei haben will, um zu sehen ob dieser noch gültig ist oder ein neuer eingefügt werden muss. Die Eingabe ist in diesem Fall nicht von mir sondern von Boost &quot;gemacht&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814766</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814766</guid><dc:creator><![CDATA[Razor]]></dc:creator><pubDate>Sat, 28 Nov 2009 23:47:24 GMT</pubDate></item><item><title><![CDATA[Reply to fstream-Problem on Sun, 29 Nov 2009 09:38:18 GMT]]></title><description><![CDATA[<p>Das .TXT im Namen der Datei deutet doch darauf hin, dass es sich um eine reine<br />
Textdatei nach ASCII handelt. Wenn dem so ist, hier mein Vorschlag:</p>
<pre><code class="language-cpp">ifstram    datei;
char       zeile[80],ausgabe[80],zeichen;
int        len,i;
....
datei.open(&quot;test.txt&quot;);
while(!datei.eof())
{
   datei.getline(zeile,sizeof(zeile));  // die einzelnen Zeilen der Datei
   len = strlen(zeile);
   for(i=0;i&lt;len;i++)
   {
      zeichen=zeile[i];                 // die einzelnen Zeichen einer Zeile
      ....                              // hier die Ausgabe aufbereiten
   } 
   ....
}
</code></pre>
<p>So sollte es laufen. Natürlich geht das mit pointern in der for-Schleife noch etwas eleganter.<br />
Achtung: An die Ausgabe das Nullzeichen '\0' anhängen!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1814815</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1814815</guid><dc:creator><![CDATA[berniebutt]]></dc:creator><pubDate>Sun, 29 Nov 2009 09:38:18 GMT</pubDate></item></channel></rss>