<?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[Streams vergleichen]]></title><description><![CDATA[<p>Hallo Leute, ich habe ein kleines Problem</p>
<p>Ich schreibe gerade ein Adressenverwaltungsprogramm,<br />
das Prog liest die Adressen aus ner Datei aus.<br />
Man kann die neue Adressen hinzufügen, anzeigen ect...</p>
<p>Mein Problem ist ich will jetzt eine Suchfunktion einbauen,<br />
wo mittels</p>
<pre><code>cin.getline(search,30,'\n');
</code></pre>
<p>das zu suchende Wort eingelesen wird, auf der anderen Seite mit</p>
<pre><code>while(stream.eos())
{
    cin.getline(stream,30,'|');
}.....
</code></pre>
<p>das Wort aus der Datei ausgelesn wird.<br />
Ich will jetzt das wenn search=stream ist die Adresse ausgegeben wird,<br />
oder in Klassen gespeichert wird...</p>
<p>Ich dachte das ich einfach die beiden Zeichenketten vergleichen muss,<br />
also so</p>
<pre><code>while(stream.eos())
{
    cin.getline(stream,30,'|');

if(stream==search)
{
    Gebe Daten aus, speicher Daten in Klassen usw...)
}
}.....
</code></pre>
<p>...aber es funktioniert nicht, obwohl stream und search gleich sind<br />
gibt die If-Bedingung nicht True zurück? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich bin noch Anfänger in C++ und wäre deshalb um jede Hilfe dankbar!<br />
Ich hab schonmal was von Zeigern in C++ gehört, ich denke das dass mein<br />
Programm erheblich verbessern könnte, vielleicht wisst ihr was darüber...</p>
<p>mfg tillt</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/159591/streams-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 10 Sep 2026 15:14:15 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/159591.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 16 Sep 2006 20:38:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Streams vergleichen on Sat, 16 Sep 2006 20:38:18 GMT]]></title><description><![CDATA[<p>Hallo Leute, ich habe ein kleines Problem</p>
<p>Ich schreibe gerade ein Adressenverwaltungsprogramm,<br />
das Prog liest die Adressen aus ner Datei aus.<br />
Man kann die neue Adressen hinzufügen, anzeigen ect...</p>
<p>Mein Problem ist ich will jetzt eine Suchfunktion einbauen,<br />
wo mittels</p>
<pre><code>cin.getline(search,30,'\n');
</code></pre>
<p>das zu suchende Wort eingelesen wird, auf der anderen Seite mit</p>
<pre><code>while(stream.eos())
{
    cin.getline(stream,30,'|');
}.....
</code></pre>
<p>das Wort aus der Datei ausgelesn wird.<br />
Ich will jetzt das wenn search=stream ist die Adresse ausgegeben wird,<br />
oder in Klassen gespeichert wird...</p>
<p>Ich dachte das ich einfach die beiden Zeichenketten vergleichen muss,<br />
also so</p>
<pre><code>while(stream.eos())
{
    cin.getline(stream,30,'|');

if(stream==search)
{
    Gebe Daten aus, speicher Daten in Klassen usw...)
}
}.....
</code></pre>
<p>...aber es funktioniert nicht, obwohl stream und search gleich sind<br />
gibt die If-Bedingung nicht True zurück? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
<p>Ich bin noch Anfänger in C++ und wäre deshalb um jede Hilfe dankbar!<br />
Ich hab schonmal was von Zeigern in C++ gehört, ich denke das dass mein<br />
Programm erheblich verbessern könnte, vielleicht wisst ihr was darüber...</p>
<p>mfg tillt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138760</guid><dc:creator><![CDATA[tillt]]></dc:creator><pubDate>Sat, 16 Sep 2006 20:38:18 GMT</pubDate></item><item><title><![CDATA[Reply to Streams vergleichen on Sat, 16 Sep 2006 20:43:29 GMT]]></title><description><![CDATA[<p>Was genau ist denn der Fehler?<br />
Du solltest die ganzen Adressdaten sowiso lieber im Speicher haben statt ständig Plattenzugriffe zu machen. Also, zu Beginn einmal einlesen und später die ganzen Daten wieder speichern.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138763</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sat, 16 Sep 2006 20:43:29 GMT</pubDate></item><item><title><![CDATA[Reply to Streams vergleichen on Sat, 16 Sep 2006 20:50:47 GMT]]></title><description><![CDATA[<p>Erstmal danke für deine schnelle Antwort <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>Klar, das klingt logisch. Aber ich bin noch relativ neu in C++ und wüßte nicht wie ich das machen könnte... <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="😕"
    /><br />
Zu den Fehler, die if Bedingung erkennt nicht das die als char deklarierten Variabeln gleich sind, auch unter char* klappt nicht?</p>
<p>zur Hilfe ich benutze DevC++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138765</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138765</guid><dc:creator><![CDATA[tillt]]></dc:creator><pubDate>Sat, 16 Sep 2006 20:50:47 GMT</pubDate></item><item><title><![CDATA[Reply to Streams vergleichen on Sat, 16 Sep 2006 21:12:05 GMT]]></title><description><![CDATA[<p>Ich nehme an stream und search sind char-Arrays? In dem Fall kannst du den operator== vergessen, der vergleicht nur die Pointer, die auf den für die Arrays reservierten Speicherbereiche zeigen.</p>
<p>Das ist noch ein weiterer von vielen Gründen, warum char* unter C++ im Allgeminen kein akzeptabler Typ für die Darstellung von Strings ist. Dafür nimmt man normalerweise std::string. Und dann klappts auch mit dem ==.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138772</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138772</guid><dc:creator><![CDATA[Z2]]></dc:creator><pubDate>Sat, 16 Sep 2006 21:12:05 GMT</pubDate></item><item><title><![CDATA[Reply to Streams vergleichen on Sat, 16 Sep 2006 21:11:42 GMT]]></title><description><![CDATA[<p>mit den &quot;machen könnte&quot; meine ich das ich ja mit ner schleife alle daten auslen müsste und diese dann in variabeln speichern müsste, soweit wäre das kein Problem, aber bei 100. von Adressen wird das schon ziemlich speicherfressend und ich hab bis jetzt noch nicht mit Speicherverwaltung ect... gearbeitet</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138774</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138774</guid><dc:creator><![CDATA[tillt]]></dc:creator><pubDate>Sat, 16 Sep 2006 21:11:42 GMT</pubDate></item><item><title><![CDATA[Reply to Streams vergleichen on Sat, 16 Sep 2006 21:13:02 GMT]]></title><description><![CDATA[<p>Zum vergleichen von C-Strings (char <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="😉"
    /> muss die Funktion <em>strcmp()</em> verwendet werden.<br />
Besser wäre es jedoch gleich die C++ Veriante, nämlich std::string, zu verwenden statt alten C-Strings.</p>
<p>100 Adressen sollte dein Speicher verkraften können! <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>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138775</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sat, 16 Sep 2006 21:13:02 GMT</pubDate></item><item><title><![CDATA[Reply to Streams vergleichen on Sat, 16 Sep 2006 21:14:01 GMT]]></title><description><![CDATA[<p>Kannst du mir das mit den std::string mal genauer erklären...<br />
hab bis jetzt noch nicht damit gearbeitet wie funktioniert das?</p>
<p>mfg tillt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138776</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138776</guid><dc:creator><![CDATA[tillt]]></dc:creator><pubDate>Sat, 16 Sep 2006 21:14:01 GMT</pubDate></item><item><title><![CDATA[Reply to Streams vergleichen on Sat, 16 Sep 2006 21:20:03 GMT]]></title><description><![CDATA[<p>Hab mal nen bisschen gegoogelt und das hier gefunden:<br />
<a href="http://www.hlrs.de/people/mueller/tutorials/script/scriptse30.html" rel="nofollow">http://www.hlrs.de/people/mueller/tutorials/script/scriptse30.html</a><br />
Werd mich mal ein bisschen darin einarbeiten...<br />
Vielen Dank für eure Antworten! <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>mfg tillt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138778</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138778</guid><dc:creator><![CDATA[tillt]]></dc:creator><pubDate>Sat, 16 Sep 2006 21:20:03 GMT</pubDate></item><item><title><![CDATA[Reply to Streams vergleichen on Sat, 16 Sep 2006 21:43:46 GMT]]></title><description><![CDATA[<p>Hi!</p>
<p>Ein kleiner Denkanstoß:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;fstream&gt;

class AddressList
{
public:
	struct Item
	{
		std::string name;
		std::string vorname;

		Item( const std::string &amp;_name, const std::string &amp;_vorname )
		: name( _name ),
		  vorname( _vorname )
		{}

		Item( std::ifstream &amp;stream )
		{
			std::getline( stream, name );
			std::getline( stream, vorname );
		}
	};

	typedef std::vector&lt; Item *&gt;		item_list;
	typedef item_list::iterator			item_list_iter;
	typedef item_list::const_iterator	item_list_const_iterator;

private:
	item_list list;

public:
	~AddressList();

	void ReadFromFile( std::ifstream &amp;stream );
	Item *Find( const std::string &amp;name ) const;
};

AddressList::~AddressList()
{
	item_list_iter it = list.begin();

	for ( ; it != list.end(); ++it )
	{
		delete *it;
	}

	list.clear();
}

void AddressList::ReadFromFile( std::ifstream &amp;stream )
{
	while ( stream.good() )
	{
		AddressList::Item *new_item = new AddressList::Item( stream );
		list.push_back( new_item );
	}
}

AddressList::Item *AddressList::Find( const std::string &amp;name ) const
{
	item_list_const_iterator it = list.begin();

	for ( ; it != list.end(); ++it )
	{
		if ( ( *it )-&gt;name == name )
			return *it;
	}

	return 0;
}

int main()
{
	AddressList list;
	std::ifstream stream( &quot;foobar.txt&quot; );

	if ( !stream )
		throw std::logic_error( &quot;cannot open stream&quot; );

	list.ReadFromFile( stream );
	AddressList::Item *item = list.Find( &quot;Name2 &quot; );

	if ( item )
	{
		std::cout &lt;&lt; &quot;Name: &quot; &lt;&lt; item-&gt;name &lt;&lt; std::endl;
		std::cout &lt;&lt; &quot;Vorname: &quot; &lt;&lt; item-&gt;vorname &lt;&lt; std::endl;
	}
	else
		std::cout &lt;&lt; &quot;Not found&quot; &lt;&lt; std::endl;

	stream.close();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1138786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138786</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Sat, 16 Sep 2006 21:43:46 GMT</pubDate></item><item><title><![CDATA[Reply to Streams vergleichen on Sun, 17 Sep 2006 07:11:07 GMT]]></title><description><![CDATA[<p>Sorry das ich erst jetzt Antworte</p>
<p>Vielen Dank für das Beispiel Prog, schätze werde dadurch viel lernen</p>
<p>mfg tillt <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>Ps: Deine Webseite hat ein gutes Design! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1138851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1138851</guid><dc:creator><![CDATA[tillt]]></dc:creator><pubDate>Sun, 17 Sep 2006 07:11:07 GMT</pubDate></item></channel></rss>