Konvertierung von txt in eine array funktioniert nicht

ja wenn ich das wüsste hätte ich kein Forum gebraucht.....:)

dieses meine aktuelle variante, die läuft aber nicht

C++:
#include <iostream>
#include<cmath>
#include<vector>
using namespace std;

 int main()
 {
     double xPoint[6];
     double yPoint[6];
     ;std::vector<float> v;


     for (int i=0;i<5;i++)
     {
         cout<<"Enter the x coordinate for position"<<i<<":"<<endl;
         cin>>xPoint[i];
         cout<<"Enter the y coordinate for position"<<i<<":"<<endl;
         cin>>yPoint[i];
     }
       for (int k=0;k<5;k++)
      {


      for (int i=0;i<6;i++)

         {
              double X =sqrt(pow(xPoint[0+k]-xPoint[i],2)+pow(yPoint[0+k]-yPoint[i],2));

               {
    std::vector<int> v;
    int i;
     vector=X;

    for (i=0; i<100; ++i)
    {for(k=0;k<5;++k)

        v.push_back(i); // Fügt i ans Ende von v an.
        ++v[i];

      cout<<vector<<" ";


}
cout<<endl;

         }

         }
     }
 }
 
Zuletzt bearbeitet von einem Moderator:
Hallo und guten Morgen,

"... , die läuft aber nicht" ist aber eine sehr dürftige Fehler-Beschreibung. ;) Davon abgesehen, wäre es hilfreich, wenn du deinen Code in die entsprechenden Code Tags packen würdest, dass macht es leichter ihn zu lesen.

Was mir bisher so auffällt, ist

C++:
;std::vector<float> v;

in der dritten Zeile nach dem main(...). Da ist wohl ein Semikolon zuviel am Zeilenanfang. Zusätzlich sehe ich die Deklaration/Definition der Variablen vector nicht, die du ausgeben willst. Und wofür dient der Vektor v in den du immer den aktuellen Wert deiner Lauf-Variablen i hineinschreibst?

Viele Grüße,
Wolf
 
Zuletzt bearbeitet von einem Moderator:
Moin,

außerdem scheinst Du ein Klammerungsproblem zu haben .....

Habe den Code mal versucht, zu formatieren, damit es deutlich wird :
C++:
#include <iostream>
#include<cmath>
#include<vector>
using namespace std;

int main()
{
	double xPoint[6];
	double yPoint[6];
	std::vector<float> v;

	for (int i=0;i<5;i++)
	{
		cout<<"Enter the x coordinate for position"<<i<<":"<<endl;
		cin>>xPoint[i];
		cout<<"Enter the y coordinate for position"<<i<<":"<<endl;
		cin>>yPoint[i];
	}

	for (int k=0;k<5;k++)
	{
		for (int i=0;i<6;i++)
		{
			double X =sqrt(pow(xPoint[0+k]-xPoint[i],2)+pow(yPoint[0+k]-yPoint[i],2));

		{  // ********?
			std::vector<int> v;
			int i;
			vector=X;

			for (i=0; i<100; ++i)
			{
				for(k=0;k<5;++k)
					v.push_back(i);   // ACHTUNG: nur diese Zeile wird hier behandelt ******

				++v[i];
				cout<<vector<<" ";
			}
			cout<<endl;
		}  // ********?

	}  // schießt diese Scheife: for (int k=0;k<5;k++)
	}  // ********?
}

gruß
Klaus
 
Zuletzt bearbeitet von einem Moderator:
Der Vektor ist die Distanzmatrix für jede entfernung zwischen 5 punkten und X ist immer jeweils eine entfernung zwischen 2 punkten , nennen wir mal die punkte ABCDE


ABCDE
A 01111
B 10111
C 11011
D 11101
E 11110

jede 1 steht symbolisch für einen X wert. Im code oben im tread hatte ich diese werte bereitsn nur standen die Spalten untereinander...
 
Moin,

aha ....................

Hast Du denn meine Kommentare im Code (bzgl. Llammerung und FOR-Schleife) gelesen - und ggf. bereinigt ?

Gruß
Klaus
 
Danke schon mal für das formatieren, Klaus!!

Ja habei ich habe ich, rennt aber nicht :(

mittlerweile habe ich meinen code so modifiziert, der läuft nur was hier nicht klappt ist das er X updated und an die richtige stelle der matrix einsetzt das geht an sich mit dem push back befehl, nur wie genau****
bekomme dabei die fehlermeldung request for member "push back in "vector" which is of non class type double
C++:
#include <iostream>
#include<cmath>
#include<vector>
using namespace std;


 int main()
 {
     double xPoint[6];
     double yPoint[6];



     for (int i=0;i<5;i++)
     {
         cout<<"Enter the x coordinate for position"<<i<<":"<<endl;
         cin>>xPoint[i];
         cout<<"Enter the y coordinate for position"<<i<<":"<<endl;
         cin>>yPoint[i];
     }
       for (int k=0;k<5;k++)
      {


      for (int i=0;i<6;i++)

         {
              double X =sqrt(pow(xPoint[0+k]-xPoint[i],2)+pow(yPoint[0+k]-yPoint[i],2));
{

	vector double[100][100];
	for(int i=0; i<6; i++)
	{
		for(int j=0; j<6; j++)
		{
			vector.push_back(*X);
					}
	}

	for(int i=0; i<5; i++)//Anzahl der Zeilen
	{
for(int j=0; j<5; j++)//Anzahl der Spalten
		{
			cout <<vector[i][j]  << "  ";//iZeilen j Spalten

		}
		cout << endl;
	}
}
         }
      }
 }
 
Zuletzt bearbeitet von einem Moderator:
Hi.

[Bitte verwende Code-Tags!]

Hallo,
mein problem ist folgendes ich möchte gerne die Werte X im Code per Push back in einen vektor schieben und bekomme dabei die fehlermeldung request for member "push back in "vector" which is of non class type double
Dein Vektor ist keine Vektor, sondern ein double.

Entweder hast du die falsche Variable erwischt, oder die Variable wurde von einer zweiten überschattet.
 
genau bei der double vector [100][100]Zeile ist der Fehler, dachte erst das ich es umgekehrt schreiben muss vector double[100][100] funktioniert auch nicht sowie vector<int> vector; funktioniert ebenfalls nicht :[. Was ich gerne möchte ist X in die Matrix hineinschiebe damit ich dann eine Matrix der from

XXXX
XXXX
XXXX
XXXX erhalte, mit dem jeweils aktuellen werten der schleife für X!!
 
Zuletzt bearbeitet:
Hallo,

der eine Fehler liegt wohl schon bei der Deklaration deines Vektors double. Das müsste nicht

C++:
vector double[100][100];

heissen, sondern zum Beispiel:

C++:
vector<double> matrix;

Dann kannst du mit

C++:
matrix.push_back(X);

die Werte in den Vektor schreiben. Du musst dir dann aber irgendwo merken, wieviele Spalten eine Zeile hat, damit du die Werte passend aus dem vektor herauslesen und auf die Konsole schreiben kannst.

Insgesamt würde ich sagen, du würfelst da einiges durcheinander und solltest dir vielleicht die Klasse "std::vector" mal genauer angucken. Und bitte versuch mal den Code etwas lesbarer zu formatieren, so dass man leichter erkennen kann, welche Klammern zusammen gehören.

Gruß,
Wolf
 
Zuletzt bearbeitet von einem Moderator:
Zum vector: Da du wohl std::vector verwenden willst:
Warum zweidimensional? Vektoren sind als eindimensionaler Speicher gedacht.
C:
std::vector<double> vec; //vector darf die Variable nicht heissen, da sonst variable==typ
Ansonsten: Sicher, dass du dafür Vektoren verwenden willst? Wäre ein Array nicht besser geeignet?
Und warum willst du ein 100*100-Feld für Max. 6*6?

Gruss
cwriter
 

Neue Beiträge

Zurück