<?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[Komplexe Zahlen aus Datei einlesen]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich bin neu hier und daher noch relativ unerfahren was den Umgang im Forum entspricht.<br />
Ich habe folgendes Problem: ich würde gerne Zahlen aus einer Datei einlesen (vorzugsweise zwei Zahlen pro Zeile als float mit Leerzeichen getrennt) um diese dann als Real- und Imaginärteil einer komplexen Zahl zuzuordnen. Ich habe bis jetzt nur Erfahrung mit C und Fortran, würde aber eine &quot;korrekte&quot; Lösung in C++ sehr begrüßen.</p>
<p>Vielen Dank für Eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/274895/komplexe-zahlen-aus-datei-einlesen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 27 Aug 2026 06:16:26 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/274895.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 05 Oct 2010 07:09:53 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 07:09:53 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich bin neu hier und daher noch relativ unerfahren was den Umgang im Forum entspricht.<br />
Ich habe folgendes Problem: ich würde gerne Zahlen aus einer Datei einlesen (vorzugsweise zwei Zahlen pro Zeile als float mit Leerzeichen getrennt) um diese dann als Real- und Imaginärteil einer komplexen Zahl zuzuordnen. Ich habe bis jetzt nur Erfahrung mit C und Fortran, würde aber eine &quot;korrekte&quot; Lösung in C++ sehr begrüßen.</p>
<p>Vielen Dank für Eure Hilfe!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961466</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961466</guid><dc:creator><![CDATA[Poolshark]]></dc:creator><pubDate>Tue, 05 Oct 2010 07:09:53 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 07:22:26 GMT]]></title><description><![CDATA[<p>Hallo Poolshark,</p>
<p>willkommen im C++-Forum.</p>
<p>Wenn Real- und Imaginärteil durch Leerzeichen getrennt sind, ist dies wohl die einfachste Lösung:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;complex&gt;

int main()
{
    using namespace std;
    ifstream datei( &quot;input.txt&quot; );
    if( !datei.is_open() )
    {
        cerr &lt;&lt; &quot;Fehler beim Oeffnen der Datei&quot; &lt;&lt; endl;
        return -1;
    }
    for( double re, im; datei &gt;&gt; re &gt;&gt; im; )
    {
        complex&lt; double &gt; c( re, im );
        // mache was mit 'c' ...
        cout &lt;&lt; &quot;gelesen: &quot; &lt;&lt; c &lt;&lt; endl;
    }
    return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1961469</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961469</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Tue, 05 Oct 2010 07:22:26 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 07:22:51 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::ifstream input(&quot;...&quot;);

float real, img;
std::vector&lt;std::complex&lt;float&gt; &gt; vec;

while(input &gt;&gt; real &gt;&gt; img)
{
  vec.push_back(std::complex&lt;float&gt;(real, img));
}
</code></pre>
<p>Sofern es wirklich nur ein File ist, welches auf jeder Zeile zwei Zahlen hat und die erste Zahl jeweils die reelle Zahl ist. Die Streams ignorieren standardmässig Whitespaces. Zudem kann man einen Stream direkt auf seine Gültigkeit prüfen. Es wird somit jeweils zwei Zahlen probiert zu lesen, solange dies geht, wird eine komplexe Zahl erzeugt und in den Vektor kopiert. Sobald das Lesen fehlschlägt, sofern das File richtig formatiert ist, haben wir das Ende erreicht.</p>
<p>Ein Link zu einer C++ Referenz befindet sich in meiner Signatur.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961470</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 05 Oct 2010 07:22:51 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 08:23:21 GMT]]></title><description><![CDATA[<p>google topics:<br />
c++ ifstream zum einlesen (getline() falls du strings auseinanderfummeln willst ansonsten &gt;&gt;, &lt;&lt; float/double überladung<br />
c++ complex zum apspeichern<br />
c++ vector (std::vector&lt;std::complex&lt;float&gt; &gt;) zum abspeichern mehrerer Dinge</p>
<p>edit:: boah bin ich langsam, danke <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="🙂"
    /> orrigiert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961471</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961471</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Tue, 05 Oct 2010 08:23:21 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 08:15:18 GMT]]></title><description><![CDATA[<p>padreigh schrieb:</p>
<blockquote>
<p>c++ vector (std::vector<a href="std::complex" rel="nofollow">std::complex</a> &gt;)</p>
</blockquote>
<p>Dravere schrieb:</p>
<blockquote>
<pre><code class="language-cpp">std::vector&lt;std::complex&lt;float&gt; &gt; vec;
</code></pre>
</blockquote>
<p>Wieso nutzt ihr einen vector, um Daten unbekannter Größe zu speichern? Eine std::deque ist doch viel besser geeignet.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961484</guid><dc:creator><![CDATA[VF]]></dc:creator><pubDate>Tue, 05 Oct 2010 08:15:18 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 08:16:57 GMT]]></title><description><![CDATA[<blockquote>
<p>Eine std::deque ist doch viel besser geeignet.</p>
</blockquote>
<p>Begründung? <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f576.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--sunglasses"
      title=":sunglasses:"
      alt="🕶"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961485</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961485</guid><dc:creator><![CDATA[theta]]></dc:creator><pubDate>Tue, 05 Oct 2010 08:16:57 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 08:26:30 GMT]]></title><description><![CDATA[<p>VF schrieb:</p>
<blockquote>
<p>padreigh schrieb:</p>
<blockquote>
<p>c++ vector (std::vector<a href="std::complex" rel="nofollow">std::complex</a> &gt;)</p>
</blockquote>
<p>[...] Daten unbekannter Größe [...] std::deque ist doch viel besser geeignet.</p>
</blockquote>
<p>Bei mir: Gewohnheit, habe mit Vector mehr gearbeitet. Im Normalfall pack ich da ein <code>std::vector&lt;Whatever&gt;.reserve(amount);</code> davor und vermeide damit re-allocs. <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/1961488</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961488</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Tue, 05 Oct 2010 08:26:30 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 08:28:26 GMT]]></title><description><![CDATA[<p>kommt halt drauf an - aber anhören tut es sich erst mal so, als ob das einlesen relativ zeitunkritisch passieren würde - außerdem sind 8Byte pro Objekt jetzt nicht so unendlich viel zu kopieren, dass es die x zusätzlichen new`s und die langsamere iteration rechtfertigen würde.<br />
außerdem ists ja nicht so, dass die eingabe aus nem wahnsinnig schnellen medium ausgelesen werden würde - nein, sie kommt von ner festplatte...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961491</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961491</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 05 Oct 2010 08:28:26 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 08:42:44 GMT]]></title><description><![CDATA[<p>1. Man liest einmal ein. Es müssten schon verdammt viele Zahlen sein, bis man hier überhaupt einen Geschwindigkeitsnachteil hat. Dafür hat man wirklich schnellen Zugriff auf die Daten.<br />
2. Ein <code>std::vector</code> vergrössert sich auch nicht immer nach jedem <code>push_back</code> . Somit braucht es wahrscheinlich nur ein paar mal eine neue Speicherreservierung mit Kopien.<br />
3. Falls man wirklich grössere Datenmenge lädt, kann man womöglich eine Abschätzung machen, wieviele es sein werden, und dann <code>std::vector::reserve</code> verwenden.</p>
<p>In den meisten Fällen ist <code>std::vector</code> völlig ausreichend.</p>
<p>Grüssli</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961493</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961493</guid><dc:creator><![CDATA[Dravere]]></dc:creator><pubDate>Tue, 05 Oct 2010 08:42:44 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 08:47:57 GMT]]></title><description><![CDATA[<p>Und ich meine. Bleibt der Flaschenhals nicht egal bei welchem Container hier in jedem Fall das Dateisystem? Dann ist die Diskussion nämlich von vornerein erschlagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961496</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961496</guid><dc:creator><![CDATA[Eis logged off]]></dc:creator><pubDate>Tue, 05 Oct 2010 08:47:57 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 09:51:05 GMT]]></title><description><![CDATA[<p>Außerdem hatten wir hier im Forum schon zigmal das Thema deque vs. vector mit zahlreichen Benchmarks diskutiert. Mal nach suchen. vector hat jedenfalls immer klar vorne gelegen außer in ganz speziellen Fällen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961539</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961539</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 05 Oct 2010 09:51:05 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 13:11:04 GMT]]></title><description><![CDATA[<p>So, ich habe jetzt ein bisschen herumexperimentiert...<br />
Leider funktioniert (zumindest bei mir) der 1. angegebene Code nicht. Vielleicht hat es ja was mit meiner Entwicklerumgebung zu tun (ich benutze XCode).<br />
Anyway, ich kann mittlerweile Zahlen aus einem File mittels ifstream auslesen allerdings geht das immer nur für eine Zeile? Wie kann man nun alle Zeilen auslesen?</p>
<p>Hier der Code:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;complex&gt;

using namespace std;

int main() 
{ 

	int a,b;

	ifstream datei(&quot;input.txt&quot;);

    for( int c, d; datei &gt;&gt; c &gt;&gt; d; ) {

	//datei &gt;&gt; c &gt;&gt; d;

	a=c+1;
	b=d+1;

	cout &lt;&lt; &quot;Test: &quot;;
	cout &lt;&lt; a &lt;&lt; b;
	cout &lt;&lt; &quot; orginal: &quot;;
	cout &lt;&lt; c &lt;&lt; d;
	cout &lt;&lt; &quot;\n&quot;;

	}

}
</code></pre>
<p>Die Ausgabe beschränkt sich auf folgendes:<br />
<code>Test: 44 orginal: 34</code></p>
<p>In meiner Testdatei &quot;input.txt&quot; befinden sich 3 Zeilen mit folgenden Werten:<br />
`3 4</p>
<p>5 6</p>
<p>7 8`</p>
<p>Vielen Dank für die vielen prompten Antworten!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961654</guid><dc:creator><![CDATA[Poolshark]]></dc:creator><pubDate>Tue, 05 Oct 2010 13:11:04 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 13:38:44 GMT]]></title><description><![CDATA[<p>Poolshark schrieb:</p>
<blockquote>
<p>So, ich habe jetzt ein bisschen herumexperimentiert...<br />
Leider funktioniert (zumindest bei mir) der 1. angegebene Code nicht.</p>
</blockquote>
<p>Was meinst du mit funktioniert nicht?</p>
<blockquote>
<p>Vielleicht hat es ja was mit meiner Entwicklerumgebung zu tun (ich benutze XCode).</p>
</blockquote>
<p>Sehr unwahrscheinlich, denn der Code ist absolut in Ordnung und es ist sehr, sehr ungewöhnlich Fehler in Entwicklungsumgebungen zu finden. Besonders bei solch kleinen Progrämmchen.</p>
<blockquote>
<p>Anyway, ich kann mittlerweile Zahlen aus einem File mittels ifstream auslesen allerdings geht das immer nur für eine Zeile? Wie kann man nun alle Zeilen auslesen?</p>
</blockquote>
<p>Das sollte so eigentlich auch funktionieren. Bei mir liefert dein Programm auch ein vollständiges Ergebnis:</p>
<pre><code>Test: 23 orginal: 12
Test: 45 orginal: 34
Test: 67 orginal: 56
Test: 89 orginal: 78
</code></pre>
<p>input.txt:</p>
<pre><code>1 2
3 4
5 6
7 8
</code></pre>
<p>Mir fällte jedoch auf, dass dein Programm schon falsch rechnet, weil die 4 nicht um eins erhöht wurde. Daher vermute ich mal, dass du mit einem etwas anderem Programm gearbeitet hast als das hier gezeigte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961666</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961666</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 05 Oct 2010 13:38:44 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 13:42:04 GMT]]></title><description><![CDATA[<p>probiere mal spaßeshalber ab Zeile 14</p>
<pre><code class="language-cpp">char black_magic;
    for( int c, d; datei &gt;&gt; c &gt;&gt; d &gt;&gt; black_magic; ) {
</code></pre>
<p>.. und sage uns was passiert</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961670</guid><dc:creator><![CDATA[Werner_logoff]]></dc:creator><pubDate>Tue, 05 Oct 2010 13:42:04 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 14:51:25 GMT]]></title><description><![CDATA[<p>Also ich habe den Code nun etwas verändert:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;complex&gt;

using namespace std;

int main(void) 
{ 

	int a,b,c,d;

	ifstream datei(&quot;input.txt&quot;);

    while (!datei.eof()) {
		datei &gt;&gt; c &gt;&gt; d;
		a=c+1;
		b=d+1;

		cout &lt;&lt; &quot;Test: &quot;;
		cout &lt;&lt; a &lt;&lt; b;
		cout &lt;&lt; &quot; orginal: &quot;;
		cout &lt;&lt; c &lt;&lt; d;
		cout &lt;&lt; &quot;\n&quot;;
	}

}
</code></pre>
<p>Leider beschränkt sich die Ausgabe immer noch auf eine Zeile:<br />
`Last login: Tue Oct  5 16:42:33 on ttys000</p>
<p>/Users/florianragossnig/Documents/Uni/Computational\ Physics/Programme/Fourier/build/Debug/Fourier ; exit;</p>
<p>Florian-Ragossnigs-MacBook-Pro:~ florianragossnig$ /Users/florianragossnig/Documents/Uni/Computational\ Physics/Programme/Fourier/build/Debug/Fourier ; exit;</p>
<p>Test: 45 orginal: 34</p>
<p>logout</p>
<p>[Process completed]`</p>
<p>Immerhin rechnet das Programm jetzt richtig...<br />
Ich denke nicht dass es an der Entwicklungsumgebung generell liegt, aber evtl. verwende ich den falschen Compiler (obwohl ich ein C++ Projekt gestartet habe)!</p>
<p>Bei Abänderung des Codes zu dem Beitrag von Werner passiert, kurz und knapp, garnichts:<br />
`Last login: Tue Oct  5 16:44:09 on ttys000</p>
<p>/Users/florianragossnig/Documents/Uni/Computational\ Physics/Programme/Fourier/build/Debug/Fourier ; exit;</p>
<p>Florian-Ragossnigs-MacBook-Pro:~ florianragossnig$ /Users/florianragossnig/Documents/Uni/Computational\ Physics/Programme/Fourier/build/Debug/Fourier ; exit;</p>
<p>logout</p>
<p>[Process completed]`</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961693</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961693</guid><dc:creator><![CDATA[Poolshark]]></dc:creator><pubDate>Tue, 05 Oct 2010 14:51:25 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 14:59:18 GMT]]></title><description><![CDATA[<p>Aus Performancegründen solltest du die Zahlen binär speichern außer die Speicherung als ASCII ist unbeding erforderlich...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961696</guid><dc:creator><![CDATA[Icematix]]></dc:creator><pubDate>Tue, 05 Oct 2010 14:59:18 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 15:03:10 GMT]]></title><description><![CDATA[<p>wie gesagt sollte der code aber richtig sein...<br />
bist du mal mit dem debugger durchgegangen?</p>
<p>bb</p>
<p>edit: @icematrix: gut, dass das jz richtig viel mit dem Thema zu tun hat... 4 Zahlenpaare... stimmt - da kann man einige Stunden Rechenzeit sparen...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961698</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 05 Oct 2010 15:03:10 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 15:01:23 GMT]]></title><description><![CDATA[<p>Icematix schrieb:</p>
<blockquote>
<p>Aus Performancegründen solltest du die Zahlen binär speichern außer die Speicherung als ASCII ist unbeding erforderlich...</p>
</blockquote>
<p>Aus Portabilitätsgründen solltest du die Zahlen als ASCII speichern, außer die Speicherung als binär ist unbeding erforderlich...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961700</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 05 Oct 2010 15:01:23 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 15:04:27 GMT]]></title><description><![CDATA[<p>Poolshark schrieb:</p>
<blockquote>
<p>Bei Abänderung des Codes zu dem Beitrag von Werner passiert, kurz und knapp, garnichts:</p>
</blockquote>
<p>Es scheint mir, deine Eingabedatei hat nur eine Zeile. Überprüfe diese Möglichkeit. Vielleicht liest du versehentlich die falsche Datei ein. Ändere mal die Datei von der du meinst, dass sie eingelesen wird und guck, ob die Änderungen Auswirkungen auf das Programm haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961701</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961701</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 05 Oct 2010 15:04:27 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 15:13:53 GMT]]></title><description><![CDATA[<p>Hab den Fehler gefunden: Die von Xcode produzierte executable funktioniert aus irgendwelchen Gründen nicht... Wenn ich das Programm in der Debugger Console laufen lasse bekomme ich die richtigen Lösungen. Da ich keine Ahnung habe was XCode da alles macht und da der Code zu stimmen scheint, dürfte dies vorerst ausreichen.</p>
<p>Vielen Dank für Eure Hilfe ( es könnte sein dass ich mich bezüglich der komplexen Rechenoperationen nocheinmal an euch wenden muss <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/1961704</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961704</guid><dc:creator><![CDATA[Poolshark]]></dc:creator><pubDate>Tue, 05 Oct 2010 15:13:53 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 16:07:11 GMT]]></title><description><![CDATA[<p>Wie bereits vorausgesagt habe ich natürlich jetzt ein Problem mit den komplexe Rechenoperationen...<br />
Einmal Vorweg: kann eine Komplexe Zahl auch als Array definiert werden?</p>
<p>Hier ist mal mein Code:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;complex&gt;
#include &lt;math.h&gt;

using namespace std;

int main(void) 
{ 
	double re, im, reFT, imFT, test;
	int i=0, N, p, j;

	fstream count;
	count.open(&quot;input.txt&quot;, ios::in);
	while (!count.eof()) {
		count &gt;&gt; re &gt;&gt; im;
		i=i++;
	}
	count.close();

	N=i;
	test=i/2.0;
	i=0;

	if (test != (int)test) {
		cout &lt;&lt; &quot;Ungerade Anzahl von komplexen Zahlen!&quot;;
	}
	else {

		ifstream datei(&quot;input.txt&quot;);
		while (!datei.eof()) {
			datei &gt;&gt; re &gt;&gt; im;

			complex&lt;double&gt; fj[N](re, im), fn[N](reFT, imFT), im(0.0,1.0), Sum_fn[N];
			j=0;

			for (p=-N/2; p == N/2-1; p++) {

				j=j++;
				Sum_fn[j] = Sum_fn[j-1]+exp((-2.0*3.14*im*i*p)/N)*fj[j];
			}

			fn[i] = 1.0/N*Sum_fn[i];

			cout &lt;&lt; &quot;\nFouriertransformierte: &quot; &lt;&lt; fn[i] &lt;&lt; endl;
			i=i++;
		}
	}

}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1961733</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961733</guid><dc:creator><![CDATA[Poolshark]]></dc:creator><pubDate>Tue, 05 Oct 2010 16:07:11 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 17:42:37 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;complex&gt;
#include &lt;math.h&gt;
#include &lt;vector&gt; 

using namespace std;

int main(void) 
{	
  // besser statt 2 mal komplett durchzugehen:
  std::vector&lt;std::complex&lt;double&gt; &gt; daten;

  ifstream count (&quot;input.txt&quot;);
  if (count.is_open())
  {  
    double re,im; // erst deklarieren wenn du sie benutzt
    while (!count.eof()) 
    { 
      count &gt;&gt; re &gt;&gt; im;
      if (count.good()) // letzte Leseoperation erfolgreich? // dann kannste das i++'en ganz knicken
        daten.push_back(std::complex&lt;double&gt;(re,im));
      else
        std::cout &lt;&lt; &quot;Ungerade Anzahl von komplexen Zahlen!&quot;;
    }
    count.close();
  }
  else 
  { 
    std::cout &lt;&lt; &quot;Unable to open file&quot;; 
    return 1; 
  }

  std::vector&lt;std::complex&lt;double&gt; &gt; sumsums;
  sumsums.reserve(daten.size());

  for (int p=0; p &lt; daten.size(); p++) 
  {
    // machwasmitdemzeug
    sumsums.push_back(daten.at(p));
  }
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1961745</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961745</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Tue, 05 Oct 2010 17:42:37 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 17:45:57 GMT]]></title><description><![CDATA[<p>ein paar code anmerkungen:</p>
<pre><code class="language-cpp">#include &lt;fstream&gt; 
#include &lt;iostream&gt; 
#include &lt;complex&gt;
#include &lt;math.h&gt;

using namespace std;

int main(void) 
{ 
	double re, im, reFT, imFT, test;
	int i=0, N, p, j;
</code></pre>
<p>Zeug so spät deklarieren wie es geht</p>
<pre><code class="language-cpp">fstream count;
	count.open(&quot;input.txt&quot;, ios::in);
	while (!count.eof()) {
		count &gt;&gt; re &gt;&gt; im;
		i=i++;
	}
	count.close();
</code></pre>
<p>fstream schmeisst exceptions wenns schief geht ... ifstream auch aber dafür liefert ifstream.good() einen Anhaltspunkt ob was schief geht. <code>i=i++</code> ist ziemlich Sinnbefreit, das macht in etwa : <code>i = i; ++i;</code> google nach Postincrement: Kurzfassung: <code>++irgendwas</code> und <code>irgendwass++</code> zählen <code>irgendwas</code> um 1 hoch .. <code>++irgendwas</code> sofort wo es steht, <code>irgendwas++</code> erst nach Auswertung des Ausdrucks (grob gesagt) ... ein <code>=</code> hat in keinem was zu suchen.</p>
<pre><code class="language-cpp">N=i;
	test=i/2.0;
	i=0;

	if (test != (int)test) {
		cout &lt;&lt; &quot;Ungerade Anzahl von komplexen Zahlen!&quot;;
	}
</code></pre>
<p>warum nicht <code>if (i%2 == 0) {...}</code> .. kein Cast nötig und den Moludo operator sollte man kennen:</p>
<p>Teste die hier mal durch <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>
<pre><code class="language-cpp">int b=24; 
int wieoft=b/10; 
int rest=b%10; 
double durch = b/10.0;
double test = b/10;
</code></pre>
<p>warum 2 mal Öffnen statt gleich speichern (s.o.)</p>
<pre><code class="language-cpp">else {

		ifstream datei(&quot;input.txt&quot;);
		while (!datei.eof()) {
			datei &gt;&gt; re &gt;&gt; im;

			complex&lt;double&gt; fj[N](re, im), fn[N](reFT, imFT), im(0.0,1.0), Sum_fn[N];
			j=0;
</code></pre>
<p><code>reFt, imFt</code> find ich irgendwie nicht ...achdoch gaaaaaaaaaaaaaanz oben ... aber nicht initialisiert, da steht also immer was anderes drin und du initialisiert damit gleich nen Array?</p>
<pre><code class="language-cpp">for (p=-N/2; p == N/2-1; p++) {

				j=j++;
				Sum_fn[j] = Sum_fn[j-1]+exp((-2.0*3.14*im*i*p)/N)*fj[j];
			}

			fn[i] = 1.0/N*Sum_fn[i];

			cout &lt;&lt; &quot;\nFouriertransformierte: &quot; &lt;&lt; fn[i] &lt;&lt; endl;
			i=i++; // Sinnbefreit, siehe oben
		}
	}
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1961761</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961761</guid><dc:creator><![CDATA[padreigh]]></dc:creator><pubDate>Tue, 05 Oct 2010 17:45:57 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 17:40:53 GMT]]></title><description><![CDATA[<p>padreigh schrieb:</p>
<blockquote>
<p>fstream schmeisst exceptions wenns schief geht ...</p>
</blockquote>
<p>... wenn man es ihm sagt: <a href="http://www.cplusplus.com/reference/iostream/ios/exceptions/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ios/exceptions/</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961783</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961783</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Tue, 05 Oct 2010 17:40:53 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 17:46:05 GMT]]></title><description><![CDATA[<p>Ok, dann mal langsam für die etwas Begriffsstutzigen wie mich... <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>
<blockquote>
<p>std::vector&lt;std::complex&lt;double&gt; &gt; daten;</p>
<p>ifstream count (&quot;input.txt&quot;);<br />
if (count.is_open())<br />
{<br />
double re,im; // erst deklarieren wenn du sie benutzt<br />
while (!count.eof())<br />
{<br />
count &gt;&gt; re &gt;&gt; im;<br />
if (count.good()) // letzte Leseoperation erfolgreich? // dann kannste das i++'en ganz knicken<br />
daten.push_back(std::complex&lt;double&gt;(re,im));<br />
else<br />
std::cout &lt;&lt; &quot;Ungerade Anzahl von komplexen Zahlen!&quot;;<br />
}<br />
myfile.close();</p>
</blockquote>
<p>Woher weiß der Compiler jetzt dass eine gerade oder ungerade Anzahl an kompl. Zahlen in der Datei sind?</p>
<p>`std::vector&lt;std::complex&lt;double&gt; &gt; sumsums;</p>
<p>sumsums.reserve(daten.size());<code>So wie ich das verstehe ist</code>daten.size()` sozusagen die Anzahl der Zeilen mit Inhalt in meiner Datei.</p>
<blockquote>
<p>reFt, imFt find ich irgendwie nicht ...</p>
</blockquote>
<p><code>reFT</code> und <code>imFT</code> brauche ich zur Zeit auch noch nicht. Das sollte dann später wieder in eine Datei ausgegeben werden. Es reicht bislang vollkommen aus wenn die Rechenoperationen ohne Fehler durchgeführt werden können.<br />
Weiters wäre auch interessant ob meine Deklaration von <em>i</em> <code>im(0.0,1.0)</code> auch so korrekt ist.<br />
Müssen evtl. andere Operatoren verwendet werden wenn man mit komplexen Zahlen rechnet oder erkennt der Compiler automatisch was gemeint ist wenn eine Zahl als komplexe Zahl deklariert ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961785</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961785</guid><dc:creator><![CDATA[Poolshark]]></dc:creator><pubDate>Tue, 05 Oct 2010 17:46:05 GMT</pubDate></item><item><title><![CDATA[Reply to Komplexe Zahlen aus Datei einlesen on Tue, 05 Oct 2010 17:46:24 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<p>padreigh schrieb:</p>
<blockquote>
<p>fstream schmeisst exceptions wenns schief geht ...</p>
</blockquote>
<p>... wenn man es ihm sagt: <a href="http://www.cplusplus.com/reference/iostream/ios/exceptions/" rel="nofollow">http://www.cplusplus.com/reference/iostream/ios/exceptions/</a></p>
</blockquote>
<p>Ich glaube Exceptions sind nicht was hier gesucht sind, eher die Grundlagen der Streambenutzung. Und vielleicht etwas Lernwille, denn der Threadersteller hat in diesem Thread schon einige Beispiele bekommen, wie man alles viel besser machen kann. Ich würde an seiner Stelle mal die erste oder zweite Antwort angucken, verstehen und als Ansatz nehmen *Wink mit dem Zaunpfahl*.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1961786</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1961786</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Tue, 05 Oct 2010 17:46:24 GMT</pubDate></item></channel></rss>