<?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[Spalte aus Matrix in externer Datei einlesen]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe eine Matrix in einer externen Datei 'test.dat':<br />
-1.929481e+01 0.000000e+00 -1.929481e+01 1.593886e+00 2.817968e+00 7.629167e-02<br />
1.814395e+01 0.000000e+00 1.814395e+01 2.634391e+00 5.391297e+00 4.073703e-02<br />
.<br />
.<br />
usw.</p>
<p>Jetzt möchte ich beim Programmstart die Spalte abfragen die eingelesen werden soll. Den Rest brauche ich für das Programm nicht.<br />
Ich habe folgendes Programm gefunden:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;iomanip&gt;
#include &quot;math.h&quot;
#include &lt;stdlib.h&gt;
#include &lt;vector&gt;
#include &lt;sstream&gt;

using namespace std;

int main() {
  const char* filename = &quot;test.dat&quot;;
  ifstream inFile(filename);

  if(!inFile) {
    cout &lt;&lt; endl &lt;&lt; &quot;Failed to open file &quot; &lt;&lt; filename&lt;&lt;endl;
    return 1;
  }

  double n = 0;
  while(!inFile.eof()) {
    inFile &gt;&gt; n;
    cout &lt;&lt; setw(6) &lt;&lt; n;
  }
  cout &lt;&lt; endl;
  return 0;
}
</code></pre>
<p>Meine Fragen:<br />
-Das Programm gibt bisher nur '0' aus. Liegt es am Dateityp 'double'?<br />
-Wie kann ich meine Idee umsetzen zB nur die Spalte 3 oder 5 einzulesen?</p>
<p>Und noch interessantes Zusatzwissen:<br />
-Wie kann ich beim einlesen wissen, dass ich am Ende einer Zeile bin?<br />
-Oder wie kann ich untersuchen wie viele Zeilen die 'Matrix'<br />
hat?</p>
<p>Ich steig leider momentan noch nicht durch diese fstream,ostream usw. Geschichte. Wenn jemand eine verständliche Einführung hat, bitte her damit <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>Grüße,</p>
<p>Marius</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/323845/spalte-aus-matrix-in-externer-datei-einlesen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Jul 2026 14:00:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/323845.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Feb 2014 15:08:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Spalte aus Matrix in externer Datei einlesen on Wed, 19 Feb 2014 16:23:57 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich habe eine Matrix in einer externen Datei 'test.dat':<br />
-1.929481e+01 0.000000e+00 -1.929481e+01 1.593886e+00 2.817968e+00 7.629167e-02<br />
1.814395e+01 0.000000e+00 1.814395e+01 2.634391e+00 5.391297e+00 4.073703e-02<br />
.<br />
.<br />
usw.</p>
<p>Jetzt möchte ich beim Programmstart die Spalte abfragen die eingelesen werden soll. Den Rest brauche ich für das Programm nicht.<br />
Ich habe folgendes Programm gefunden:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;fstream&gt;
#include &lt;iomanip&gt;
#include &quot;math.h&quot;
#include &lt;stdlib.h&gt;
#include &lt;vector&gt;
#include &lt;sstream&gt;

using namespace std;

int main() {
  const char* filename = &quot;test.dat&quot;;
  ifstream inFile(filename);

  if(!inFile) {
    cout &lt;&lt; endl &lt;&lt; &quot;Failed to open file &quot; &lt;&lt; filename&lt;&lt;endl;
    return 1;
  }

  double n = 0;
  while(!inFile.eof()) {
    inFile &gt;&gt; n;
    cout &lt;&lt; setw(6) &lt;&lt; n;
  }
  cout &lt;&lt; endl;
  return 0;
}
</code></pre>
<p>Meine Fragen:<br />
-Das Programm gibt bisher nur '0' aus. Liegt es am Dateityp 'double'?<br />
-Wie kann ich meine Idee umsetzen zB nur die Spalte 3 oder 5 einzulesen?</p>
<p>Und noch interessantes Zusatzwissen:<br />
-Wie kann ich beim einlesen wissen, dass ich am Ende einer Zeile bin?<br />
-Oder wie kann ich untersuchen wie viele Zeilen die 'Matrix'<br />
hat?</p>
<p>Ich steig leider momentan noch nicht durch diese fstream,ostream usw. Geschichte. Wenn jemand eine verständliche Einführung hat, bitte her damit <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>Grüße,</p>
<p>Marius</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2384072</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384072</guid><dc:creator><![CDATA[Kinderschokolade]]></dc:creator><pubDate>Wed, 19 Feb 2014 16:23:57 GMT</pubDate></item><item><title><![CDATA[Reply to Spalte aus Matrix in externer Datei einlesen on Wed, 19 Feb 2014 16:40:07 GMT]]></title><description><![CDATA[<p>Was denn, geht doch alles ? <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 />
Oder ist die Datei vielleicht keine Textdatei ?</p>
<pre><code>Wie kann ich meine Idee umsetzen zB nur die Spalte 3 oder 5 einzulesen?
</code></pre>
<p>Alle anderen Zeilen ignorieren.</p>
<blockquote>
<p>Wie kann ich beim einlesen wissen, dass ich am Ende einer Zeile bin?</p>
</blockquote>
<p>Entweder du kennst die Größe der Matrix (dann sollte es ja wohl klar sein) oder wenn eine neue Zeile ('\n') kommt.</p>
<blockquote>
<p>Oder wie kann ich untersuchen wie viele Zeilen die 'Matrix'<br />
hat?</p>
</blockquote>
<p>Entweder du kennst die Größe der Matrix oder du ließt einfach bis zum Ende der Datei.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2384099</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384099</guid><dc:creator><![CDATA[DarkShadow44]]></dc:creator><pubDate>Wed, 19 Feb 2014 16:40:07 GMT</pubDate></item><item><title><![CDATA[Reply to Spalte aus Matrix in externer Datei einlesen on Fri, 21 Feb 2014 13:19:30 GMT]]></title><description><![CDATA[<p>Bisher wird ja nur alles eingelesen, es wird links oben angefangen und rechts unten aufgehört.</p>
<p>Ich möchte aber:<br />
1. Eintrag Spalte n<br />
2. Eintrag Spalte n<br />
..</p>
<p>Ich schätze du sagst dass ich so wie bisher durch die Liste gehen muss.<br />
Um die Anzahl der Spalten(und Zeilen) zu bekommen mache ich also vorher noch einen Durchlauf in dem ich die Anzahl der Elemente zähle und eine Abfrage mache wann ein &quot;\n&quot; kommt.</p>
<p>Wie mache ich diese Abfrage?<br />
Und mein Problem dass bisher nur nullen ausgegeben werden besteht noch..</p>
<p>EDIT: Kann mir denn bitte bitte bitte jemand helfen?<br />
Ich habe jetzt verstanden dass mit dem Operator &quot;&gt;&gt;&quot; immer Wort für Wort eingelesen wird.<br />
Ich muss also in der Schleife eine Abfrage machen:</p>
<pre><code>while(!inFile.eof()) {
    inFile &gt;&gt; n;
    cout &lt;&lt; setw(6) &lt;&lt; n;
    if(??){cout&lt;&lt;endl;}
  }
</code></pre>
<p>Bei dem ?? muss ich als irgendwie schauen ob es mit einem /n endet. Ich weiß nur nicht wie!</p>
<p>Ich kann doch nicht der erste sein der so grundlegende Sachen vorhat oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2384104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2384104</guid><dc:creator><![CDATA[Kinderschokolade]]></dc:creator><pubDate>Fri, 21 Feb 2014 13:19:30 GMT</pubDate></item></channel></rss>