<?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[Fehler in Stringsuche und Ausgabe]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich durchsuche zeilenweise eine Textdatei nach einem R1. Falls dieser gefunden wird, soll er gespeichert werden. Hier unter &quot;reins&quot;:</p>
<pre><code class="language-cpp">if( strstr(Zeile,&quot;R1=&quot;)) 					// Suchen des Parameters der Ausgaben
		{	

			teins = Zeile;	
			int pos = teins.find(&quot;=&quot;);								// Umwandlung String in Zahl
				if(pos != string::npos)
				{
					subeins = teins.substr (pos + 1);
					Streins &lt;&lt; subeins;
					Streins &gt;&gt; reins;
					fprint (fpOut, %f, reins)
				}
		}
</code></pre>
<p>dies funktioniert soweit. Wenn allerdings mehrere R1 vorkommen, wird immer nur 0 ausgegeben ?! Ich habe schon versucht die Strings zu löschen etc. Hier mal komplett mit Deklaration:</p>
<pre><code class="language-cpp">int reins=0;
string teins;
string subeins;

if( strstr(Zeile,&quot;R1=&quot;)) 					// Suchen des Parameters der Ausgaben
		{	

			teins = Zeile;	
			int pos = teins.find(&quot;=&quot;);								// Umwandlung String in Zahl
				if(pos != string::npos)
				{
					subeins = teins.substr (pos + 1);
					Streins &lt;&lt; subeins;
					Streins &gt;&gt; reins;
					fprint (fpOut, %f, reins)
teins.erase();
subeins.erase();
reins = 0;
				}
		}
</code></pre>
<p>Input:</p>
<blockquote>
<p>R1=230<br />
R1=300</p>
</blockquote>
<p>Output:</p>
<blockquote>
<p>230.00000<br />
0.000000</p>
</blockquote>
<p>Wo liegt der Fehler bzw. warum funktioniert das nicht bei mehreren R1 ?</p>
<p>Danke im Voraus !!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/284561/fehler-in-stringsuche-und-ausgabe</link><generator>RSS for Node</generator><lastBuildDate>Fri, 21 Aug 2026 23:17:09 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/284561.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 04 Apr 2011 07:39:23 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Fehler in Stringsuche und Ausgabe on Mon, 04 Apr 2011 07:39:23 GMT]]></title><description><![CDATA[<p>Hallo zusammen,</p>
<p>ich durchsuche zeilenweise eine Textdatei nach einem R1. Falls dieser gefunden wird, soll er gespeichert werden. Hier unter &quot;reins&quot;:</p>
<pre><code class="language-cpp">if( strstr(Zeile,&quot;R1=&quot;)) 					// Suchen des Parameters der Ausgaben
		{	

			teins = Zeile;	
			int pos = teins.find(&quot;=&quot;);								// Umwandlung String in Zahl
				if(pos != string::npos)
				{
					subeins = teins.substr (pos + 1);
					Streins &lt;&lt; subeins;
					Streins &gt;&gt; reins;
					fprint (fpOut, %f, reins)
				}
		}
</code></pre>
<p>dies funktioniert soweit. Wenn allerdings mehrere R1 vorkommen, wird immer nur 0 ausgegeben ?! Ich habe schon versucht die Strings zu löschen etc. Hier mal komplett mit Deklaration:</p>
<pre><code class="language-cpp">int reins=0;
string teins;
string subeins;

if( strstr(Zeile,&quot;R1=&quot;)) 					// Suchen des Parameters der Ausgaben
		{	

			teins = Zeile;	
			int pos = teins.find(&quot;=&quot;);								// Umwandlung String in Zahl
				if(pos != string::npos)
				{
					subeins = teins.substr (pos + 1);
					Streins &lt;&lt; subeins;
					Streins &gt;&gt; reins;
					fprint (fpOut, %f, reins)
teins.erase();
subeins.erase();
reins = 0;
				}
		}
</code></pre>
<p>Input:</p>
<blockquote>
<p>R1=230<br />
R1=300</p>
</blockquote>
<p>Output:</p>
<blockquote>
<p>230.00000<br />
0.000000</p>
</blockquote>
<p>Wo liegt der Fehler bzw. warum funktioniert das nicht bei mehreren R1 ?</p>
<p>Danke im Voraus !!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044367</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044367</guid><dc:creator><![CDATA[Benji2010]]></dc:creator><pubDate>Mon, 04 Apr 2011 07:39:23 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in Stringsuche und Ausgabe on Mon, 04 Apr 2011 09:24:22 GMT]]></title><description><![CDATA[<p>Falsches Formatsymbol für integer, da kann alles Mögliche angezeigt werden. Am besten du ersetzt fprint durch die entsprechende C++ Streamklasse.</p>
<p>Edit:<br />
Der Code ist reichlich unübersichtlich, am besten, du initialisierst die Variablen da, wo sie gebraucht werden. Und eine sinnvolle Benennung wäre auch ganz gut, ich musste selbst bei den drei Zeilen schon gucken, was reins, teins, subeins und Streins eigentlich sind.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044423</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Mon, 04 Apr 2011 09:24:22 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in Stringsuche und Ausgabe on Mon, 04 Apr 2011 09:36:42 GMT]]></title><description><![CDATA[<p>Stimmt der Fehler ist aber nur im Forum-Quelltext, da ich diese Zeile von<br />
Hand reingeschrieben habe.</p>
<pre><code class="language-cpp">fprint (fpOut, %i, reins)
</code></pre>
<p>Mich wundert es halt nur, dass es beim ersten Anzeigen von R1 richtig funktioniert und beim zweiten Mal nicht mehr. Deshalb dachte ich es liegt an den Strings, die gelöscht werden müssen ?!</p>
<p>Und ja die Variablen muss ich noch besser beschreiben !!</p>
<p>Hat sonst noch einer einen Tipp ?! Es muss doch möglich sein, den Parameter zu speichern, ihn dann auszugeben und bei einem weiteren Vorkommen, dies zu wiederholen... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f615.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--confused_face"
      title=":confused:"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044439</guid><dc:creator><![CDATA[Benji2010]]></dc:creator><pubDate>Mon, 04 Apr 2011 09:36:42 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in Stringsuche und Ausgabe on Mon, 04 Apr 2011 09:47:18 GMT]]></title><description><![CDATA[<p>sry meine natürlich:</p>
<pre><code class="language-cpp">fprint (fpOut, %d, reins)
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2044445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044445</guid><dc:creator><![CDATA[Benji2010]]></dc:creator><pubDate>Mon, 04 Apr 2011 09:47:18 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in Stringsuche und Ausgabe on Mon, 04 Apr 2011 09:51:00 GMT]]></title><description><![CDATA[<p>Benji2010 schrieb:</p>
<blockquote>
<p>Hat sonst noch einer einen Tipp ?!</p>
</blockquote>
<p>Hör auf DocShoe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044448</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Mon, 04 Apr 2011 09:51:00 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in Stringsuche und Ausgabe on Mon, 04 Apr 2011 09:55:48 GMT]]></title><description><![CDATA[<p>Damit &quot;mehrere&quot; gefunden werden, würde ich so etwas wie &quot;for&quot; oder &quot;while&quot; erwarten. Das ist in deinem Code aber nicht vorhanden ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044453</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044453</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Mon, 04 Apr 2011 09:55:48 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in Stringsuche und Ausgabe on Mon, 04 Apr 2011 13:21:28 GMT]]></title><description><![CDATA[<p>Leider weiß ich trotz googlen nicht was:</p>
<blockquote>
<p>&quot;Am besten du ersetzt fprint durch die entsprechende C++ Streamklasse&quot;</p>
</blockquote>
<p>Könnte mir das mal einer kurz erklären ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044531</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044531</guid><dc:creator><![CDATA[Benji2010]]></dc:creator><pubDate>Mon, 04 Apr 2011 13:21:28 GMT</pubDate></item><item><title><![CDATA[Reply to Fehler in Stringsuche und Ausgabe on Mon, 04 Apr 2011 13:35:09 GMT]]></title><description><![CDATA[<p>Wenn das garantiert immer RX=XXX ist, dann würde ich boost::tokenizer verwenden. Weil du hast dann alle Werte schön sortiert in einem iterationsfähigen Container.</p>
<pre><code class="language-cpp">void parse(std::string&amp; file)
{
    std::ifstream stream;
	stream.open(file.c_str());

	if ( stream.is_open() )
	{
		std::string line;
		while ( !stream.eof() )
		{
			// Read line
			std::getline(stream, line);

			if ( !line.empty() )
			{
				// Tokenize string			
				const boost::char_delimiters_separator&lt;char&gt; sep(&quot; &quot;, &quot;=&quot;);
				boost::tokenizer&lt;&gt; tokenizer(line, sep);
				boost::tokenizer&lt;&gt;::iterator it = tokenizer.begin();

                std::string r = *it;
                if ( it+2 != tokenizer.end() &amp;&amp; r == &quot;R1&quot; )
                {
                    std::string sVal = *(it+2);
                    int value = boost::lexical_cast&lt;int&gt;(sVal);    

                    std::cout &lt;&lt; sVal &lt;&lt; &quot;\t:\t&quot; &lt;&lt; value &lt;&lt; std::endl;
                }
            }
        }
    }                
}
</code></pre>
<p>Nicht getestet, aber ungefähr so sollte es funzen :).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2044539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2044539</guid><dc:creator><![CDATA[[[global:former_user]]]]></dc:creator><pubDate>Mon, 04 Apr 2011 13:35:09 GMT</pubDate></item></channel></rss>