<?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[irgendwas läuft schief]]></title><description><![CDATA[<p>Ich wollt mir ein bischen zur übung ein art ini writer/reader machen doch ich habe momentan ein paar problem und komm nicht weiter vieleicht könnt ihr mir ja helfen</p>
<p>Die Ini Datei:</p>
<pre><code>[Test]
variable=100ÿ
ASDF=10000032ÿ
</code></pre>
<p>Der Quellcode</p>
<pre><code>[cpp]
#include &lt;Windows.h&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;stdio.h&gt;
using namespace std;
int strpos(char*,char*);
char * var_ausles(char*,char*);

int main() 
{

	 fstream fs;
	ofstream ofs;
	ifstream ifs;
	//Falls Datei nicht Vorhanden erstellen
	ifs.open(&quot;C:/tester.ini&quot;);
	if(!fs)
	{
		ofs.open(&quot;C:/tester.ini&quot;);
		ofs.close();
		ifs.open(&quot;C:/tester.ini&quot;);
	}
	//______________________________________

	// Kommplette Datei in text[zeile][buchstabe] einlesen
	char buffer[250];
	char text[250][250];
	int j = 0;
	while(!ifs.eof())
	{
		ifs.getline(buffer,250);
		int size = sizeof(buffer) / sizeof(buffer[0]);
		int i = 0;
		while(i&lt;size)
		{
			text[j][i] = buffer[i];
			i++;
		}
		j++;		
	}
	// ________________________________________________________
	char * var=var_ausles(text[2],&quot;ASDF&quot;);
	cout&lt;&lt;var&lt;&lt;endl;//hier gibt er in der cmd nicht's mehr aus :/
	ifs.close();
	cin.get();
 return 0;
}
int strpos(char *haystack, char *needle)
{
	char *p = strstr(haystack, needle);
	if (p)
		return p - haystack;
	return -1;   // Not found = -1.
}
char* var_ausles(char text[],char varname[])
{
	char var[] = &quot;                &quot;;  
   //und das hier ist meiner ansicht nach schlecht gelöst//

	int i = 0;
	int pos = strpos(text,varname);
	pos += strlen(varname);
	while(text[pos+1]!='ÿ')
	{	
		var[i] = text[pos+1];
		i++;
		pos++;
	}
	cout&lt;&lt;var&lt;&lt;endl; //hier gibt er in der cmd &quot;10000032&quot; Stimmt soweit
	return var;
}
[/cpp]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/300916/irgendwas-läuft-schief</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 11:19:58 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300916.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 14 Mar 2012 09:42:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 09:42:26 GMT]]></title><description><![CDATA[<p>Ich wollt mir ein bischen zur übung ein art ini writer/reader machen doch ich habe momentan ein paar problem und komm nicht weiter vieleicht könnt ihr mir ja helfen</p>
<p>Die Ini Datei:</p>
<pre><code>[Test]
variable=100ÿ
ASDF=10000032ÿ
</code></pre>
<p>Der Quellcode</p>
<pre><code>[cpp]
#include &lt;Windows.h&gt;
#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;stdio.h&gt;
using namespace std;
int strpos(char*,char*);
char * var_ausles(char*,char*);

int main() 
{

	 fstream fs;
	ofstream ofs;
	ifstream ifs;
	//Falls Datei nicht Vorhanden erstellen
	ifs.open(&quot;C:/tester.ini&quot;);
	if(!fs)
	{
		ofs.open(&quot;C:/tester.ini&quot;);
		ofs.close();
		ifs.open(&quot;C:/tester.ini&quot;);
	}
	//______________________________________

	// Kommplette Datei in text[zeile][buchstabe] einlesen
	char buffer[250];
	char text[250][250];
	int j = 0;
	while(!ifs.eof())
	{
		ifs.getline(buffer,250);
		int size = sizeof(buffer) / sizeof(buffer[0]);
		int i = 0;
		while(i&lt;size)
		{
			text[j][i] = buffer[i];
			i++;
		}
		j++;		
	}
	// ________________________________________________________
	char * var=var_ausles(text[2],&quot;ASDF&quot;);
	cout&lt;&lt;var&lt;&lt;endl;//hier gibt er in der cmd nicht's mehr aus :/
	ifs.close();
	cin.get();
 return 0;
}
int strpos(char *haystack, char *needle)
{
	char *p = strstr(haystack, needle);
	if (p)
		return p - haystack;
	return -1;   // Not found = -1.
}
char* var_ausles(char text[],char varname[])
{
	char var[] = &quot;                &quot;;  
   //und das hier ist meiner ansicht nach schlecht gelöst//

	int i = 0;
	int pos = strpos(text,varname);
	pos += strlen(varname);
	while(text[pos+1]!='ÿ')
	{	
		var[i] = text[pos+1];
		i++;
		pos++;
	}
	cout&lt;&lt;var&lt;&lt;endl; //hier gibt er in der cmd &quot;10000032&quot; Stimmt soweit
	return var;
}
[/cpp]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2191456</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191456</guid><dc:creator><![CDATA[Dagnih]]></dc:creator><pubDate>Wed, 14 Mar 2012 09:42:26 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 09:56:06 GMT]]></title><description><![CDATA[<p>Vermutlich läuft irgendwo irgendwas irgendwie falsch. Das musst du korrigieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191461</guid><dc:creator><![CDATA[DocShoe]]></dc:creator><pubDate>Wed, 14 Mar 2012 09:56:06 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 10:02:40 GMT]]></title><description><![CDATA[<p>Folgendes bitte abstellen:<br />
- Verwendung von open/close bei fstreams<br />
- eof als Schleifenbedingung<br />
- Arrays statt std::string/std::vector</p>
<p>Wenn danach das Problem noch existiert, bitte nochmal melden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191468</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191468</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 14 Mar 2012 10:02:40 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 10:29:26 GMT]]></title><description><![CDATA[<p>Wie soll man das mit der verwendunf von open bzw close abstellen ?:o</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191485</guid><dc:creator><![CDATA[Dagnih]]></dc:creator><pubDate>Wed, 14 Mar 2012 10:29:26 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 10:34:15 GMT]]></title><description><![CDATA[<p>Ums Öffnen kümmert sich der Konstruktor, wenn man denn die richtige Überladung benutzt. Ums Schließen kümmert sich der Destruktor.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191487</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191487</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 14 Mar 2012 10:34:15 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 11:56:20 GMT]]></title><description><![CDATA[<p>MFK schrieb:</p>
<blockquote>
<p>Folgendes bitte abstellen:<br />
- eof als Schleifenbedingung</p>
</blockquote>
<p>Darf ich fragen, was für einen Hintergrund das hat?<br />
In anderen Sprachen (bspw. PHP) ist so etwas durchaus üblich.<br />
Was ist die Alternative?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191526</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191526</guid><dc:creator><![CDATA[theliquidwave]]></dc:creator><pubDate>Wed, 14 Mar 2012 11:56:20 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 12:03:24 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>MFK schrieb:</p>
<blockquote>
<p>Folgendes bitte abstellen:<br />
- eof als Schleifenbedingung</p>
</blockquote>
<p>Darf ich fragen, was für einen Hintergrund das hat?</p>
</blockquote>
<p>eof wird erst angezeigt, nachdem mindestens einmal ein Leseversuch das Dateiende überschritten hat. Dieser Versuch ist dann natürlich auch fehlgeschlagen, und an der Stelle muss man es schon abfangen.</p>
<blockquote>
<p>In anderen Sprachen (bspw. PHP) ist so etwas durchaus üblich.</p>
</blockquote>
<p>Da I/O in PHP im Wesentlichen an der stdio.h von C orientiert ist, würde ich das erstmal bezweifeln. Eigentlich kenn ich das nur von Pascal, das EOF schon angezeigt wird, wenn der nächste Leseversuch aufgrund des Dateiendes scheitern wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191533</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Wed, 14 Mar 2012 12:03:24 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 12:03:44 GMT]]></title><description><![CDATA[<p>theliquidwave schrieb:</p>
<blockquote>
<p>Darf ich fragen, was für einen Hintergrund das hat?</p>
</blockquote>
<p>eof liefert erst dann true, wenn schon ein Lesevorgang fehlgeschlagen ist. Wenn man also nicht zusätzlich den Status nach dem eigentlichen Lesen prüft, hat man einmal Mist eingelesen. Besser ist es, den Lesevorgang selbst als Schleifenbedingung zu benutzen, oder gleich ganz ohne Schleife und statt dessen Algorithmen wie std::copy benutzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191534</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191534</guid><dc:creator><![CDATA[MFK]]></dc:creator><pubDate>Wed, 14 Mar 2012 12:03:44 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 12:06:29 GMT]]></title><description><![CDATA[<p>eof() bringt dir nichts, wenn im Stream irgendein Fehler aufgetreten ist.<br />
Die Streams von C++ bieten eine Überladung für den !-Operator (not),<br />
welcher true zurückgibt, wenn irgendwas nicht stimmt (fail(), eof(), whatever).<br />
Zudem gibt es noch eine bool-Konvertierung, die genau das Gegenteil macht, als true liefert, wenn alles Okay ist.</p>
<p>man kann also z.B. eine Textdatei so einlesen:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;string&gt;
#include &lt;vector&gt;

// ...

std::ifstream in(&quot;foo.txt&quot;);
std::vector&lt;std::string&gt; content;
while (in)
{
    std::string line;
    std::getline(in, line, &quot;\n&quot;);
    content.push_back(line);
}
</code></pre>
<p>Nach dem Durchlaufen der Schleife hast du ein schönes Array mit Strings, wobei jeder String eine Zeile der Datei repräsentiert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191538</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Wed, 14 Mar 2012 12:06:29 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 14:03:19 GMT]]></title><description><![CDATA[<p>Okey hab mal n bissle rumgetüftelt<br />
aber das mit dem vector hab ich einfach mal copie pastet da ich auf die schnelle nichts gefunden hab.</p>
<p>wenn ich es jetzt ausführe kommt am schluss 2 mal die letzte zeite ... k.a. warum bzw. was gibt den der ifstream zurück?</p>
<p>testi.ini</p>
<pre><code>[Test]
variable=100
ASDF=10000032
</code></pre>
<p>c++ code</p>
<pre><code>[cpp]
#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;Windows.h&gt;
#include &lt;fstream&gt;
#include &lt;vector&gt;

int einlesen();
using namespace std;

int main()
{ 
	 einlesen();
	 return 0;
}

int einlesen()
{
	ifstream fs(&quot;C:/testi.ini&quot;);	
	string text = &quot;&quot;;
	vector&lt;string&gt; content;
	while(fs)
	{
		getline(fs,text);
		content.push_back(text); 
		cout&lt;&lt;text&lt;&lt;endl;
	}
	cin.get();
	return 0;
}
[/cpp]
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2191593</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191593</guid><dc:creator><![CDATA[Dagnih]]></dc:creator><pubDate>Wed, 14 Mar 2012 14:03:19 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 14:15:09 GMT]]></title><description><![CDATA[<p>Warum Du die letzte Zeile doppelt siehst, wurde hier mehrfach schon damit erklärt, dass der Test, denn du als Schleifenbedingung hast, zu spät kommt. Du musst stattdessen testen, ob das getline funktioniert hat und ggf abbrechen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191601</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Wed, 14 Mar 2012 14:15:09 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 14:18:58 GMT]]></title><description><![CDATA[<p>Gute frage nächste frage <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="😃"
    /> kann man einen Vector als rückgabewert verwenden? <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="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191604</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191604</guid><dc:creator><![CDATA[Dagnih]]></dc:creator><pubDate>Wed, 14 Mar 2012 14:18:58 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Wed, 14 Mar 2012 18:35:57 GMT]]></title><description><![CDATA[<p>Weiss nicht obs schon erwähnt wurde, aber</p>
<pre><code class="language-cpp">char* var_ausles(char text[],char varname[]) 
{ 
    char var[] = &quot;                &quot;;   
    // ....
    return var; // möpmöpmöp problem
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2191704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191704</guid><dc:creator><![CDATA[hustbaer]]></dc:creator><pubDate>Wed, 14 Mar 2012 18:35:57 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Thu, 15 Mar 2012 01:20:08 GMT]]></title><description><![CDATA[<p>DrakoXP schrieb:</p>
<blockquote>
<p>Zudem gibt es noch eine bool-Konvertierung, die genau das Gegenteil macht, als true liefert, wenn alles Okay ist.</p>
</blockquote>
<p>Meinten Sie: void*-Konvertierung? <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>
]]></description><link>https://www.c-plusplus.net/forum/post/2191772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191772</guid><dc:creator><![CDATA[Horst Hannelore Hansen]]></dc:creator><pubDate>Thu, 15 Mar 2012 01:20:08 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Thu, 15 Mar 2012 01:46:33 GMT]]></title><description><![CDATA[<p>Nein, in C++03 würde das wohl eher über eine Konvertierung in einen Zeiger auf eine eingebettete private Klasse hinauslaufen, da hier semantischer Dünnschiss ausgeschlossen wird und der Compiler dadraus in boolschen Kontexten (if) true oder false macht.<br />
In C++11 kann das aber wunderbar durch einen expliziten operator bool erreicht werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191773</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191773</guid><dc:creator><![CDATA[DrakoXP]]></dc:creator><pubDate>Thu, 15 Mar 2012 01:46:33 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Thu, 15 Mar 2012 08:31:22 GMT]]></title><description><![CDATA[<p>also ich hab das mit dem rückgabe wert jetzt anderst geregelt vielen dank für den tipp mit den strings geht doch irgendwie besser <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=";D"
      alt="😉"
    /> hab jetzt aber ein neues problem</p>
<pre><code class="language-cpp">[code]
//------

int varpos[3] = {0,0,0};
vector&lt;string&gt; complete_text; //&lt;--- enthält den text schon
string str = &quot;test&quot;;

//------

varpos[1] = complete_text[i].find(0,str);

[/code]
</code></pre>
<p>der compiler gibt die fehlermeldung :</p>
<p>error C2664: 'unsigned int std::basic_string&lt;_Elem,_Traits,_Ax&gt;::find(const std::basic_string&lt;_Elem,_Traits,_Ax&gt; &amp;,unsigned int) const': Konvertierung des Parameters 2 von 'std::string' in 'unsigned int' nicht möglich</p>
<p>aus und naja ich raffs net <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=":/"
      alt="😕"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191809</guid><dc:creator><![CDATA[Dagnih]]></dc:creator><pubDate>Thu, 15 Mar 2012 08:31:22 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Thu, 15 Mar 2012 09:30:06 GMT]]></title><description><![CDATA[<p>Dagnih schrieb:</p>
<blockquote>
<pre><code class="language-cpp">varpos[1] = complete_text[i].find(0,str); // &lt;- 2.Parameter falsch gewählt
</code></pre>
<p>der compiler gibt die fehlermeldung :</p>
<p>error C2664: 'unsigned int std::basic_string&lt;_Elem,_Traits,_Ax&gt;::find(const std::basic_string&lt;_Elem,_Traits,_Ax&gt; &amp;,unsigned int) const': Konvertierung des Parameters 2 von 'std::string' in 'unsigned int' nicht möglich</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2191826</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191826</guid><dc:creator><![CDATA[f.-th.]]></dc:creator><pubDate>Thu, 15 Mar 2012 09:30:06 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Thu, 15 Mar 2012 13:49:36 GMT]]></title><description><![CDATA[<p>da muss dan ein unsigned int rein oder wie? ... ich hab des versucht abzuändern doch komischer weiße kam exakt die gleiche fehlermeldung</p>
<p>jemand ne idee wie ich das richtig machen kann</p>
<p>ich will das am schluss in varpos[1] der anfangspunkt von der variable str in complete_text[i] steht</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191884</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191884</guid><dc:creator><![CDATA[Dagnih]]></dc:creator><pubDate>Thu, 15 Mar 2012 13:49:36 GMT</pubDate></item><item><title><![CDATA[Reply to irgendwas läuft schief on Thu, 15 Mar 2012 14:30:02 GMT]]></title><description><![CDATA[<p>Schau dir doch mal an welche Parameter string::find braucht.<br />
<a href="http://www.cplusplus.com/reference/string/string/find/" rel="nofollow">http://www.cplusplus.com/reference/string/string/find/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2191893</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2191893</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 15 Mar 2012 14:30:02 GMT</pubDate></item></channel></rss>