<?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[Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich suche schon ewig nach einer Lösung meines Problems, eine Zeile einer 2-dimensionalen Matrix in einem Rutsch zu speichern. Hab auch schon in diversen Foren gesucht. Ich muss wohl einen Denkfehler haben, dass ich das Problem nicht allein lösen kann. So, nun erst mal der Code:</p>
<pre><code class="language-cpp">void CInGaAs_01Dlg::OnButton2() 
{
	int *m_imatrix[512], m_iintegral[512];
	int i=0,j=0,dimy=10;

	for(i=0;i&lt;512;i++) m_imatrix[i]=new int[dimy];  //512 x dimy-Matrix erzeugen

	for(j=0;j&lt;dimy;j++)
	{
	  for(i=0;i&lt;512;i++) m_imatrix[i][j]=j+1;
    }

	CFileDialog m_ldFile(FALSE);
    FILE * pFile;

  if(m_ldFile.DoModal()==IDOK)
  {
   m_sFileName=m_ldFile.GetFileName(); //Für Anzeige neben Öffnen-Button
   m_sFileNameFull=m_ldFile.GetPathName();
   UpdateData(FALSE);
  }

  pFile = fopen (m_sFileNameFull,&quot;wt+&quot;);

  if (pFile!=NULL)
  {
    for (i=0;i&lt;=512-1;i++)
	{
      for(j=0;j&lt;dimy;j++)
      {
	    fprintf (pFile,&quot;%d&quot;,m_imatrix[i][j]); //intensity
	    if (j&lt;dimy-1) fprintf (pFile,&quot; &quot;);     //field seperator
	  }
	 if (i&lt;512-1) fprintf(pFile,&quot;\n&quot;); //record separator
    }
    fclose (pFile);
	MessageBox(&quot;Datei wurde erfolgreich gespeichert!&quot;,&quot;Fertig!&quot;,MB_OK);
  }

  struct CL_HEADERSTRU *cl=NULL;
	FILE   *file_csi=NULL;
	short ix,iy;

	//Speicher fuer Header allocieren
	if (!cl)
		if(!(cl=(struct CL_HEADERSTRU *)calloc(1,sizeof(struct CL_HEADERSTRU))))
			MessageBox(&quot;Cannot allocate Memory&quot;,&quot;Error&quot;, MB_OK);

		//Header setzen

		cl-&gt;mag=7235;
		cl-&gt;XSize=20,7;
		cl-&gt;YSize=5500;
		cl-&gt;Center=500;
		cl-&gt;Disp=300;
		cl-&gt;Line=300;
		cl-&gt;Flags=1;
		cl-&gt;ix=256;
		cl-&gt;iy=200;
		cl-&gt;type=0;
		cl-&gt;chan=512;
		cl-&gt;acc=15;
		cl-&gt;temp=5;
		cl-&gt;strom=10;
		cl-&gt;kl_spalt=200;
		cl-&gt;line_x1=101;
		cl-&gt;line_y1=102;
		cl-&gt;line_x2=103;
		cl-&gt;line_y2=104;

		ix=cl-&gt;ix;
		iy=cl-&gt;iy;

		if(m_ldFile.DoModal()==IDOK)
		{
			m_sFileName=m_ldFile.GetFileName(); //Für Anzeige neben Öffnen-Button
			m_sFileNameFull=m_ldFile.GetPathName();
			UpdateData(FALSE);
		}
		//File oeffenen
		if ((file_csi = fopen(m_sFileNameFull,&quot;w+b&quot;)) == NULL)  //fopen(Filename,&quot;w+b&quot;)
		{
			MessageBox(&quot;Cannot allocate Memory&quot;,&quot;Error&quot;, MB_OK);
			return;
		}
		//Integrales Spektrum berechnen

		for(i=0;i&lt;512;i++)
		{
			m_iintegral[i]=0;
			for(j=0;j&lt;dimy;j++) m_iintegral[i]+=m_imatrix[i][j];
		}

		//Schreiben

		fwrite(cl,sizeof(struct CL_HEADERSTRU),1,file_csi);
		//for(j=0;j&lt;dimy;j++) for(i=0;i&lt;512;i++) fwrite((short int*)&amp;m_imatrix[i][j],sizeof(short int),1,file_csi);
		for(j=0;j&lt;dimy;j++) 
		{
		  fwrite((short int*)&amp;m_imatrix[0][j],sizeof(short int*512,1,file_csi);
		}
		fwrite((short int*)&amp;m_iintegral,sizeof(short int)*cl-&gt;chan,1,file_csi);
		fclose (file_csi);
		free(cl);
		MessageBox(&quot;CSI-Datei geschrieben&quot;,&quot;Error&quot;, MB_OK);
}
</code></pre>
<p>Was ich mache, ist ganz einfach. Ich lege mir einfach im oberen Teil eine 512x10-Matrix an und fülle die dann mit simplen Werten. Dann speichere ich einmal die Matrix in einer Text-Datei im Spaltenformat und abschließend im Binärformat(brauch ich für ein Auswerteprogramm).</p>
<pre><code class="language-cpp">struct CL_HEADERSTRU *cl=NULL;
</code></pre>
<p>ist einfach nur eine Struktur die als Header der Datei abgespeichert wird. Das funktioniert alles. Wenn ich diese Zeile hier benutze:</p>
<pre><code class="language-cpp">//for(j=0;j&lt;dimy;j++) for(i=0;i&lt;512;i++) fwrite((short int*)&amp;m_imatrix[i][j],sizeof(short int),1,file_csi);
</code></pre>
<p>zum speichern der Matrix, dann klappt alles wunderbar und ich kann mit einem Hex-Editor das speichern nachvollziehen. Das läuft. Benutze ich aber:</p>
<pre><code class="language-cpp">for(j=0;j&lt;dimy;j++) 
		{
		  fwrite((short int*)&amp;m_imatrix[0][j],sizeof(short int)*512,1,file_csi);
		}
</code></pre>
<p>zum Speichern einer kompletten Zeile (512 Werte), dann funktioniert zwar das Speichern an sich, aber ich bekomme für diesen Teil der Datei nur Datenmüll. Die letzte fwrite-Anweisung klappt wieder wunderbar.</p>
<p>Was mache ich nur falsch? Ich will doch nur nach und nach eine Zeile nach der anderen in einem Rutsch speichern. Ich bitte um Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/271591/zeile-einer-matrix-schreiben-in-einem-rutsch-mit-fwrite-im-binärformat-funktioniert-nicht</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 08:31:40 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/271591.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 31 Jul 2010 13:15:32 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 13:15:32 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich suche schon ewig nach einer Lösung meines Problems, eine Zeile einer 2-dimensionalen Matrix in einem Rutsch zu speichern. Hab auch schon in diversen Foren gesucht. Ich muss wohl einen Denkfehler haben, dass ich das Problem nicht allein lösen kann. So, nun erst mal der Code:</p>
<pre><code class="language-cpp">void CInGaAs_01Dlg::OnButton2() 
{
	int *m_imatrix[512], m_iintegral[512];
	int i=0,j=0,dimy=10;

	for(i=0;i&lt;512;i++) m_imatrix[i]=new int[dimy];  //512 x dimy-Matrix erzeugen

	for(j=0;j&lt;dimy;j++)
	{
	  for(i=0;i&lt;512;i++) m_imatrix[i][j]=j+1;
    }

	CFileDialog m_ldFile(FALSE);
    FILE * pFile;

  if(m_ldFile.DoModal()==IDOK)
  {
   m_sFileName=m_ldFile.GetFileName(); //Für Anzeige neben Öffnen-Button
   m_sFileNameFull=m_ldFile.GetPathName();
   UpdateData(FALSE);
  }

  pFile = fopen (m_sFileNameFull,&quot;wt+&quot;);

  if (pFile!=NULL)
  {
    for (i=0;i&lt;=512-1;i++)
	{
      for(j=0;j&lt;dimy;j++)
      {
	    fprintf (pFile,&quot;%d&quot;,m_imatrix[i][j]); //intensity
	    if (j&lt;dimy-1) fprintf (pFile,&quot; &quot;);     //field seperator
	  }
	 if (i&lt;512-1) fprintf(pFile,&quot;\n&quot;); //record separator
    }
    fclose (pFile);
	MessageBox(&quot;Datei wurde erfolgreich gespeichert!&quot;,&quot;Fertig!&quot;,MB_OK);
  }

  struct CL_HEADERSTRU *cl=NULL;
	FILE   *file_csi=NULL;
	short ix,iy;

	//Speicher fuer Header allocieren
	if (!cl)
		if(!(cl=(struct CL_HEADERSTRU *)calloc(1,sizeof(struct CL_HEADERSTRU))))
			MessageBox(&quot;Cannot allocate Memory&quot;,&quot;Error&quot;, MB_OK);

		//Header setzen

		cl-&gt;mag=7235;
		cl-&gt;XSize=20,7;
		cl-&gt;YSize=5500;
		cl-&gt;Center=500;
		cl-&gt;Disp=300;
		cl-&gt;Line=300;
		cl-&gt;Flags=1;
		cl-&gt;ix=256;
		cl-&gt;iy=200;
		cl-&gt;type=0;
		cl-&gt;chan=512;
		cl-&gt;acc=15;
		cl-&gt;temp=5;
		cl-&gt;strom=10;
		cl-&gt;kl_spalt=200;
		cl-&gt;line_x1=101;
		cl-&gt;line_y1=102;
		cl-&gt;line_x2=103;
		cl-&gt;line_y2=104;

		ix=cl-&gt;ix;
		iy=cl-&gt;iy;

		if(m_ldFile.DoModal()==IDOK)
		{
			m_sFileName=m_ldFile.GetFileName(); //Für Anzeige neben Öffnen-Button
			m_sFileNameFull=m_ldFile.GetPathName();
			UpdateData(FALSE);
		}
		//File oeffenen
		if ((file_csi = fopen(m_sFileNameFull,&quot;w+b&quot;)) == NULL)  //fopen(Filename,&quot;w+b&quot;)
		{
			MessageBox(&quot;Cannot allocate Memory&quot;,&quot;Error&quot;, MB_OK);
			return;
		}
		//Integrales Spektrum berechnen

		for(i=0;i&lt;512;i++)
		{
			m_iintegral[i]=0;
			for(j=0;j&lt;dimy;j++) m_iintegral[i]+=m_imatrix[i][j];
		}

		//Schreiben

		fwrite(cl,sizeof(struct CL_HEADERSTRU),1,file_csi);
		//for(j=0;j&lt;dimy;j++) for(i=0;i&lt;512;i++) fwrite((short int*)&amp;m_imatrix[i][j],sizeof(short int),1,file_csi);
		for(j=0;j&lt;dimy;j++) 
		{
		  fwrite((short int*)&amp;m_imatrix[0][j],sizeof(short int*512,1,file_csi);
		}
		fwrite((short int*)&amp;m_iintegral,sizeof(short int)*cl-&gt;chan,1,file_csi);
		fclose (file_csi);
		free(cl);
		MessageBox(&quot;CSI-Datei geschrieben&quot;,&quot;Error&quot;, MB_OK);
}
</code></pre>
<p>Was ich mache, ist ganz einfach. Ich lege mir einfach im oberen Teil eine 512x10-Matrix an und fülle die dann mit simplen Werten. Dann speichere ich einmal die Matrix in einer Text-Datei im Spaltenformat und abschließend im Binärformat(brauch ich für ein Auswerteprogramm).</p>
<pre><code class="language-cpp">struct CL_HEADERSTRU *cl=NULL;
</code></pre>
<p>ist einfach nur eine Struktur die als Header der Datei abgespeichert wird. Das funktioniert alles. Wenn ich diese Zeile hier benutze:</p>
<pre><code class="language-cpp">//for(j=0;j&lt;dimy;j++) for(i=0;i&lt;512;i++) fwrite((short int*)&amp;m_imatrix[i][j],sizeof(short int),1,file_csi);
</code></pre>
<p>zum speichern der Matrix, dann klappt alles wunderbar und ich kann mit einem Hex-Editor das speichern nachvollziehen. Das läuft. Benutze ich aber:</p>
<pre><code class="language-cpp">for(j=0;j&lt;dimy;j++) 
		{
		  fwrite((short int*)&amp;m_imatrix[0][j],sizeof(short int)*512,1,file_csi);
		}
</code></pre>
<p>zum Speichern einer kompletten Zeile (512 Werte), dann funktioniert zwar das Speichern an sich, aber ich bekomme für diesen Teil der Datei nur Datenmüll. Die letzte fwrite-Anweisung klappt wieder wunderbar.</p>
<p>Was mache ich nur falsch? Ich will doch nur nach und nach eine Zeile nach der anderen in einem Rutsch speichern. Ich bitte um Hilfe</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934399</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934399</guid><dc:creator><![CDATA[torstensch]]></dc:creator><pubDate>Sat, 31 Jul 2010 13:15:32 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 13:18:42 GMT]]></title><description><![CDATA[<p>sorry, wenn ich noch mal poste. eigentlicher autor ist torstenschw. registrierung war wohl noch nicht so schnell wie mein beitrag..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934401</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934401</guid><dc:creator><![CDATA[torstenschw]]></dc:creator><pubDate>Sat, 31 Jul 2010 13:18:42 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 13:25:27 GMT]]></title><description><![CDATA[<p>torstenschw schrieb:</p>
<blockquote>
<p>sorry, wenn ich noch mal poste. eigentlicher autor ist torstenschw. registrierung war wohl noch nicht so schnell wie mein beitrag..</p>
</blockquote>
<p>Du hast einen kleinen Denkfehler. Dein Array of pointer (int <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="😉"
    /> enthält 512 Zeiger beim fwrite gehst Du dann aber irgendwann einmal von 512 integers aus. Du hast aber immer nur dimy (also 10) integers hintereinander im Speicher. Deshalb kann Dein fwrite nicht das gewünschte Ergebnis liefern.</p>
<p>mfg Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934403</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934403</guid><dc:creator><![CDATA[mgaeckler]]></dc:creator><pubDate>Sat, 31 Jul 2010 13:25:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 14:02:27 GMT]]></title><description><![CDATA[<p>wenn ich also bei mir die defintion meiner matrix von matrix[512][10] auf matrix[10][512] abändere, sollte es gehen oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934418</guid><dc:creator><![CDATA[torstenschw]]></dc:creator><pubDate>Sat, 31 Jul 2010 14:02:27 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 14:12:33 GMT]]></title><description><![CDATA[<p>torstenschw schrieb:</p>
<blockquote>
<p>wenn ich also bei mir die defintion meiner matrix von matrix[512][10] auf matrix[10][512] abändere, sollte es gehen oder?</p>
</blockquote>
<p>Momentmal Deine Matrix sieht doch so aus:</p>
<pre><code class="language-cpp">int *m_imatrix[512];
</code></pre>
<p>Wenn Du Deine Matrix so definierst:</p>
<pre><code class="language-cpp">int matrix[512][10];
</code></pre>
<p>oder so</p>
<pre><code class="language-cpp">int matrix[10][512];
</code></pre>
<p>Dann kannst Du sie auch so speichern:</p>
<pre><code class="language-cpp">fwrite( matrix, sizeof(int)*512*10, 1, fp );
</code></pre>
<p>mfg Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934425</guid><dc:creator><![CDATA[mgaeckler]]></dc:creator><pubDate>Sat, 31 Jul 2010 14:12:33 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 14:36:45 GMT]]></title><description><![CDATA[<p>mgaeckler schrieb:</p>
<blockquote>
<pre><code class="language-cpp">fwrite( matrix, sizeof(int)*512*10, 1, fp );
</code></pre>
</blockquote>
<p>hab eben mal deine code mit meiner alten matrix-defintion verwendet. leider kommt da im Hex-Editor immer noch Datenmüll an. Was ich brauche, ist, dass da jetzt laut Belegung der Matrix im Programm 512x hintereinander eine 1 steht, dann 512x eine 2 und sofort. Leider sehe ich das im Hex-Editor nicht.</p>
<p>Aber ich bin dir schon mal sehr dankbar, dass du dich auf meine Problemstellung einlässt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934432</guid><dc:creator><![CDATA[torstenschw]]></dc:creator><pubDate>Sat, 31 Jul 2010 14:36:45 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 14:46:12 GMT]]></title><description><![CDATA[<p>aber so sollte es funktionieren, wie mgaeckler geschrieben hat - hast du mal mit dem debugger geguckt, ob in matrix auch das steht, was du gern hättest?</p>
<p>bb</p>
<p>PS: Dir ist bewusst, dass das C und kein C++ ist?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934437</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934437</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 31 Jul 2010 14:46:12 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 15:04:43 GMT]]></title><description><![CDATA[<p>im debugger habe ich mir das auch schon angeguckt, da passt alles mit der matrix (an mehreren stellen geprüft). nur leider schreibt er müll in die datei. wie sieht denn bei euch die binärdatei aus? würde das gerne mal sehen.</p>
<p>zu c/c++: ja, ich hab auch etwas c drin, aber ging nicht anders.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934441</guid><dc:creator><![CDATA[torstenschw]]></dc:creator><pubDate>Sat, 31 Jul 2010 15:04:43 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 15:20:32 GMT]]></title><description><![CDATA[<p>hm - also so funktioniert es jedenfalls:</p>
<pre><code class="language-cpp">#include &lt;cassert&gt;
#include &lt;cstdio&gt;

int main()
{
	int matrix[10][512] = {};
	matrix[3][12] = 1;

	FILE *c_gefrickel = fopen(&quot;asd&quot;, &quot;w&quot;);
	fwrite(matrix, sizeof(int), 10*512, c_gefrickel);
	fclose(c_gefrickel);

	c_gefrickel = fopen(&quot;asd&quot;, &quot;r&quot;);
	fread(matrix, sizeof(int), 10*512, c_gefrickel);
	fclose(c_gefrickel);

	assert(matrix[3][12] == 1);
}
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934445</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934445</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 31 Jul 2010 15:20:32 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 15:41:32 GMT]]></title><description><![CDATA[<p>dank dir unskilled. jetzt fabriziere ich zumindest keinen datenmüll mehr.<br />
hab meine matrix jetzt wie bei dir definiert über</p>
<pre><code class="language-cpp">int m_imatrix[10][512];
</code></pre>
<p>das ganze wieder mit zahlen gefüllt und über</p>
<pre><code class="language-cpp">fwrite((short int*)m_imatrix,sizeof(short int)*512*10,1,file_csi);
</code></pre>
<p>leider hab ich immer noch ein kleines problem: jetzt speichert er nur die hälfte der daten ab. hab da anscheinend noch probleme mit dem casten. im hex-editor siehts dann so aus, 01 00 00 00 01 00 00 00 01 ....<br />
also immer 2Byte zuviel mit einer Null belegt, was ich nicht ganz versteh, da meine ausgerechnete dateigröße mit der erzeugten übereinstimmt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934452</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934452</guid><dc:creator><![CDATA[torstenschw]]></dc:creator><pubDate>Sat, 31 Jul 2010 15:41:32 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 15:45:50 GMT]]></title><description><![CDATA[<p>guck dir doch mal an, wie ich die fkt aufgerufen habe und wie du sie aufrufst...</p>
<p>das hat schon nen sinn, dass die elementgröße und elementanzahl getrennt übergeben werden und nicht einfach miteinander multipliziert werden.<br />
(wenn du mal guckst, wirst du nur die hälfte abgespeichert haben)</p>
<p>aber vermutlich wird dann die falsche hälfte der zahl gespeichert : D<br />
wieso willst du unbedingt nur shorts speichern?</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934455</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 31 Jul 2010 15:45:50 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 15:55:56 GMT]]></title><description><![CDATA[<p>ok, das mit der elementgröße und anzahl sehe ich ein (klappt trotzdem nicht). short int brauche ich dann für ein anderes programm, mit die daten dann eingelesen werden. das braucht halt short int. das auswerteprogramm wird auch nicht mehr geändert.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934461</guid><dc:creator><![CDATA[torstenschw]]></dc:creator><pubDate>Sat, 31 Jul 2010 15:55:56 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 16:05:19 GMT]]></title><description><![CDATA[<p>und was heißt klappt trotzdem nciht? ich merk aber gerade selbst, dass es nicht klappen kann <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>naja - short int ist zwar doof(in jeder beziehung, weil 0 vorteile, außer nur halb so große datei, aber das sollte eh egal sein), aber wenns denn sein muss, wirst du nicht umherkommen, das int-array in nen short-array umzukopieren.</p>
<p>z.B. so:</p>
<pre><code class="language-cpp">int matrix[10][512];

short schreib_mich[10*512];
for(std::size_t i(0); i != 10*512; ++i)
{
  schreib_mich[i] = matrix[i/512][i%512];
}

FILE* fd = fopen(&quot;asd&quot;, &quot;w&quot;);
fwrite(schreib_mich, sizeof(short), 10*512, fd);
fclose(fd);
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934465</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934465</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 31 Jul 2010 16:05:19 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 16:16:26 GMT]]></title><description><![CDATA[<p>danke noch mal für deine mühen. ich hab leider gerade keine zeit mehr, um deinen code zu testen. morgen setz ich mich noch mal dran. aber meinst nicht, dass der anfang der for-schleife so lauten sollte;</p>
<pre><code class="language-cpp">for(i=0;i!=10*512;i++)
</code></pre>
<p>was dann kommt, versteh ich leider nicht so ganz. da sind meine c/c++-kenntnisse zu schlecht, aber ich will mich reinfuchsen. % = modulo?</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934472</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934472</guid><dc:creator><![CDATA[torstenschw]]></dc:creator><pubDate>Sat, 31 Jul 2010 16:16:26 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Sat, 31 Jul 2010 16:26:10 GMT]]></title><description><![CDATA[<p>nein, die for-schleife ist so richtig, wie sie ist.<br />
du kannst im initialisierungsteil auch neue variablen anlegen:<br />
<code>for(int i=0; i != 12; ++i)</code><br />
kennst du ja sicherlich, genau so geht es auch, andere typen als int zu nehmen.<br />
und statt <code>int i=0</code> kann man auch <code>int i(0)</code> schreiben.</p>
<p>% heißt modulo, japp (also welcher rest bei der division entsteht)<br />
ich habs so doof geschrieben, weil ich zu faul für die 2. schleife war, macht genau das gleiche wie:</p>
<pre><code class="language-cpp">for(int i=0; i != 10; ++i)
{
  for(int j=0; j != 512; ++j)
  {
    /*mache irgendwas mit*/ matrix[i][j];
  }
}
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1934476</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1934476</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 31 Jul 2010 16:26:10 GMT</pubDate></item><item><title><![CDATA[Reply to Zeile einer Matrix schreiben in einem Rutsch mit fwrite im Binärformat funktioniert nicht on Mon, 02 Aug 2010 16:29:49 GMT]]></title><description><![CDATA[<p>so, jetzt klappt alles. wunderbar <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/1935252</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1935252</guid><dc:creator><![CDATA[torstenschw]]></dc:creator><pubDate>Mon, 02 Aug 2010 16:29:49 GMT</pubDate></item></channel></rss>