Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [c++] mehrdimensionales dynamisches Array (https://www.delphipraxis.net/103505-%5Bc-%5D-mehrdimensionales-dynamisches-array.html)

The Lord 16. Nov 2007 17:03


[c++] mehrdimensionales dynamisches Array
 
Hi DP'ler. Ich habe so viele Fragen zu C++, aber da die meisten DP'ler auch C++ programmieren denke ich das mir hier immer gut geholfen wird :)

Ich versuche eine nxn Matrix einzulesen, wobei n zur Laufzeit eingelesen werden soll.

Ich habe folgendes Problem beim einlesen:

Hier erstelle ich das Array.
Code:
int **f2 = new int*[n]; //erstelle 2dim dynamisches Arrray

   for(int i=0;i<n;i++) //weise Speicheradressen zu
   {
      f2[i] = new int[n];
   }
Wenn ich das Array mit 0 fülle, dann klappt alles.
Code:

   for(int i=0;i<n;i++) //Benutzerein- ausgabe
   {      
      for(int j=0;j<n;j++)
      {         
         f2[i][j]=0;          
      }      
   }
Aber wenn ich den Benutzer die Daten einlesen lassen will, meckert der Compiler.
Code:

   for(int i=0;i<n;i++) //Benutzerein- ausgabe
   {      
      for(int j=0;j<n;j++)
      {
         cout << "M: n" << i << ", " << j << "\n";
         cin << f2[i][j];         
         cout << "\n";
      }      
   }
Kann mir da jemand helfen?

Gruß

ste_ett 16. Nov 2007 17:06

Re: [c++] mehrdimensionales dynamisches Array
 
Zitat:

Zitat von The Lord
Aber wenn ich den Benutzer die Daten einlesen lassen will, meckert der Compiler.

Kann mir da jemand helfen?

Was meckert er denn? :)

boserPascal 16. Nov 2007 17:07

Re: [c++] mehrdimensionales dynamisches Array
 
Guck dir cin an!!! und dann guck dir mal andere Beispiele mit cin an

Gruß

Seppel 16. Nov 2007 17:10

Re: [c++] mehrdimensionales dynamisches Array
 
Ich sags ma so:

cin >> dann hier die Variable.
Du hast aber << gemacht, das sollte der Fehler sein.

The Lord 16. Nov 2007 17:14

Re: [c++] mehrdimensionales dynamisches Array
 
Ja danke das war der Fehler :D

Also ich habe echt Probleme damit bei C++ zu debuggen, weil ich es bei Delphi besser gewohnt bin. Hier bekomme ich im glücklichsten Fall einen kleinen Hinweis, dass vllt ein ; vergessen wurde, aber jetzt z.B. gab es keinen Hinweis und es gab 49 Fehlermeldungen.

Ich habe 3 Entwicklungsumgebungen (Eclipse, DevC++, Visual C++).

Bin ich zu blöd, oder ist es wirklich so?

Danke für den Hinweis :cheers:
Gruß :)

Seppel 16. Nov 2007 17:32

Re: [c++] mehrdimensionales dynamisches Array
 
C++ is halt so^^
Fehlerbehebung war der Grund warum ich zu Delphi ging.
In C++ ist sauber arbeiten Elemantar, in Delhi auch nur dass man dort häufig noch geholfen bekommt.

boserPascal 16. Nov 2007 17:39

Re: [c++] mehrdimensionales dynamisches Array
 
Zitat:

Zitat von The Lord
Ja danke das war der Fehler :D

Also ich habe echt Probleme damit bei C++ zu debuggen, weil ich es bei Delphi besser gewohnt bin. Hier bekomme ich im glücklichsten Fall einen kleinen Hinweis, dass vllt ein ; vergessen wurde, aber jetzt z.B. gab es keinen Hinweis und es gab 49 Fehlermeldungen.

Ich habe 3 Entwicklungsumgebungen (Eclipse, DevC++, Visual C++).

Bin ich zu blöd, oder ist es wirklich so?

Danke für den Hinweis :cheers:
Gruß :)

Visual C++ hat einen sehr guten Debugger drin und in Eclipse solltest du auch debuggen können, solange es richtig konfiguriert ist. Das ist hier aber unwichtig, da der Compiler einen Fehler liefern sollte und das tun sie alle. Ich schätze mal du hast Probleme die Fehlerbeschreibungen zu lesen, da sie doch etwas umfangreicher sind.

Gruß

The Lord 16. Nov 2007 17:47

Re: [c++] mehrdimensionales dynamisches Array
 
Zitat:

Zitat von boserPascal

Visual C++ hat einen sehr guten Debugger drin und in Eclipse solltest du auch debuggen können, solange es richtig konfiguriert ist. Das ist hier aber unwichtig, da der Compiler einen Fehler liefern sollte und das tun sie alle. Ich schätze mal du hast Probleme die Fehlerbeschreibungen zu lesen, da sie doch etwas umfangreicher sind.

Gruß

Ja aber ich fände anstelle eines ewig langen Textes die Aussage "in Zeile x wird nach cin >> erwartet" oder so besser. So würde es wahrscheinlich Delphi machen ;)

boserPascal 16. Nov 2007 18:08

Re: [c++] mehrdimensionales dynamisches Array
 
Ich hab mir mal die Fehlerausgabe in Visual C++ 2005 angeschaut, die Ausgabe ist eigentlich eindeutig.

Zitat:

cin.cpp(19) : error C2784: "std::basic_ostream<char,_Traits> &std::operator <<(std::basic_ostream<char,_Traits> &,unsigned char)": template-Argument für "std::basic_ostream<char,_Traits> &" konnte nicht von "std::istream" hergeleitet werden.
Da steht das deine Umsetzung so nicht geht, weil es keine Implementierung dafür gibt. Wenn du dir dann noch die restliche Ausgabe anschaust, siehst du das der Compiler es noch mit anderen Typen probiert doch noch was zurecht zu mogeln. Es aber immer den gleichen Fehler gibt. Der Compiler kann an dieser Stelle eben nicht raten was du eigentlich vorhast, auch wenn es aus dem Kontext möglich wäre, für einen Menschen. Das mit dem Semikolon erwartet, macht er übrigens auch.

DMW 17. Nov 2007 17:51

Re: [c++] mehrdimensionales dynamisches Array
 
Darf ich nebenbei darauf hinweisen, daß für dynamische Arrays in C++ tunlichst std::vector verwendet werden sollte? Dadurch kann man die Zeit, die man sonst für das Debuggen des Zeigercodes aufwenden müßte, in andere Teile investieren.

Code:
#include <vector>

...

typedef std::vector <std::vector <int> > array2d_t; // zwecks Übersichtlichkeit
array2d_t array2d;
array2d.resize (dimension1);
for (array2d_t::iterator i = array2d.begin (), e = array2d.end (); i != e; ++i)
    i->resize (dimension2);

...
Noch besser wäre es freilich, wenn du dir eine Klasse für 2D-Arrays schreiben würdest ;)


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:04 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz