<?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[Wie die Startposition eines Tokens in einer Datei feststellen?]]></title><description><![CDATA[<p>Das Problem ein bisschen vereinfacht dargestellt möchte ich eine Datei einlesen, jedes Token in einem String zwischenspeichern und anschließend mit Startpostition und Länge ausgeben. Das ist ja so relativ einfach möglich:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

int main()
{
    std::ifstream IN;
    IN.open(&quot;test.txt&quot;);
    while(IN.good())
    {
        std::string str;
        IN &gt;&gt; str;
        int POSITION = 0; // ????
        // Jedes Token aus der Datei mit Startposition und Länge ausgeben
        std::cout &lt;&lt; str &lt;&lt; &quot; [&quot; &lt;&lt; POSITION &lt;&lt; &quot;|&quot; &lt;&lt; str.length() &lt;&lt; &quot;]\n&quot;;
    }
    IN.close();
}
</code></pre>
<p>Nur wie kann ich die Startposition des strings in der Datei feststellen?? Irgendwie mit Adressen abziehen oder so, oder gibt es da was eingebautes für die Streams? Oder muss ich wirklich per hand alle Tokenlängen aufaddieren usw..? Das wär doof, denn was passiert dann bei Doppelleerzeichen, Zeilenumbrüchen usw...!?</p>
<p>In dem obrigen Testprogramm sollte die Ausgabe für eine Datei mit:</p>
<pre><code>Dies ist eine Testdatei
</code></pre>
<p>so aussehen:</p>
<pre><code>Dies[1|4]
ist[6|3]
eine[10|4]
Testdatei.[15|10]
</code></pre>
<p>Ich hoffe da gibt es eine einfache Lösung,<br />
Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/237174/wie-die-startposition-eines-tokens-in-einer-datei-feststellen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 23 Sep 2026 14:41:02 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/237174.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 25 Mar 2009 14:10:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie die Startposition eines Tokens in einer Datei feststellen? on Wed, 25 Mar 2009 14:10:30 GMT]]></title><description><![CDATA[<p>Das Problem ein bisschen vereinfacht dargestellt möchte ich eine Datei einlesen, jedes Token in einem String zwischenspeichern und anschließend mit Startpostition und Länge ausgeben. Das ist ja so relativ einfach möglich:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

int main()
{
    std::ifstream IN;
    IN.open(&quot;test.txt&quot;);
    while(IN.good())
    {
        std::string str;
        IN &gt;&gt; str;
        int POSITION = 0; // ????
        // Jedes Token aus der Datei mit Startposition und Länge ausgeben
        std::cout &lt;&lt; str &lt;&lt; &quot; [&quot; &lt;&lt; POSITION &lt;&lt; &quot;|&quot; &lt;&lt; str.length() &lt;&lt; &quot;]\n&quot;;
    }
    IN.close();
}
</code></pre>
<p>Nur wie kann ich die Startposition des strings in der Datei feststellen?? Irgendwie mit Adressen abziehen oder so, oder gibt es da was eingebautes für die Streams? Oder muss ich wirklich per hand alle Tokenlängen aufaddieren usw..? Das wär doof, denn was passiert dann bei Doppelleerzeichen, Zeilenumbrüchen usw...!?</p>
<p>In dem obrigen Testprogramm sollte die Ausgabe für eine Datei mit:</p>
<pre><code>Dies ist eine Testdatei
</code></pre>
<p>so aussehen:</p>
<pre><code>Dies[1|4]
ist[6|3]
eine[10|4]
Testdatei.[15|10]
</code></pre>
<p>Ich hoffe da gibt es eine einfache Lösung,<br />
Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1685787</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1685787</guid><dc:creator><![CDATA[R. Cheese]]></dc:creator><pubDate>Wed, 25 Mar 2009 14:10:30 GMT</pubDate></item><item><title><![CDATA[Reply to Wie die Startposition eines Tokens in einer Datei feststellen? on Wed, 25 Mar 2009 14:18:08 GMT]]></title><description><![CDATA[<p>Referenz aufschlagen:<br />
<a href="http://www.cplusplus.com/reference/" rel="nofollow">http://www.cplusplus.com/reference/</a></p>
<p>Korrekte Funktion finden:<br />
<a href="http://www.cplusplus.com/reference/iostream/istream/tellg.html" rel="nofollow">http://www.cplusplus.com/reference/iostream/istream/tellg.html</a></p>
<p>Grüssli <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1685802</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1685802</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Wed, 25 Mar 2009 14:18:08 GMT</pubDate></item><item><title><![CDATA[Reply to Wie die Startposition eines Tokens in einer Datei feststellen? on Wed, 25 Mar 2009 14:34:43 GMT]]></title><description><![CDATA[<p>vielen dank für die schnelle antwort, ich probier es direkt mal aus <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>
]]></description><link>https://www.c-plusplus.net/forum/post/1685822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1685822</guid><dc:creator><![CDATA[R. Cheese]]></dc:creator><pubDate>Wed, 25 Mar 2009 14:34:43 GMT</pubDate></item><item><title><![CDATA[Reply to Wie die Startposition eines Tokens in einer Datei feststellen? on Wed, 25 Mar 2009 16:59:08 GMT]]></title><description><![CDATA[<p>nur falls das hier nochmal jemand liest,<br />
so klappt das jetzt, danke nochmal:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;string&gt;

int main()
{
	std::ifstream IN;
	IN.open(&quot;test.txt&quot;);
	while(IN.good())
	{
		std::string str;
		IN &gt;&gt; str;
		std::cout &lt;&lt; str &lt;&lt; &quot; [&quot; &lt;&lt; int(IN.tellg()) - int(str.length()) + 1 &lt;&lt; &quot;|&quot; &lt;&lt; str.length() &lt;&lt; &quot;]\n&quot;;
	}
	IN.close();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1685920</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1685920</guid><dc:creator><![CDATA[R. Cheese]]></dc:creator><pubDate>Wed, 25 Mar 2009 16:59:08 GMT</pubDate></item></channel></rss>