Schleife für wechselnde Variablennamen



  • Hallo,

    ich habe Variablen mit dem Namen p_1 ... p_10. Kann ich die in einer for-Schleife von i=1 bis i=10 irgendwie ansprechen und verschiedene Werte zuordnen?
    Vielen Dank für eure Hilfe! 🕶



  • Indem Du sie in einen array, vector oder anderen Container packst.



  • MatzeW schrieb:

    ich habe Variablen mit dem Namen p_1 ... p_10. Kann ich die in einer for-Schleife von i=1 bis i=10 irgendwie ansprechen und verschiedene Werte zuordnen?

    Nein, kannst du nicht. Punkt.
    Du kannst, wie brotbernd schreibt, ein Array oder einen Container der Größe 10 anlegen und da in geeigneter Weise drüber iterieren. Arrays und Container werden dir im C++-Einsteigerbuch deiner Wahl nähergebracht.



  • MatzeW schrieb:

    ich habe Variablen mit dem Namen p_1 ... p_10. Kann ich die in einer for-Schleife von i=1 bis i=10 irgendwie ansprechen und verschiedene Werte zuordnen?

    Nein. Dazu bräuchte man zur Laufzeit eine Art Tabelle, in der auch die Variablennamen drin stehen, so dass man dort nachgucken könnte. So etwas gibt es aber nicht, da es nicht mit dem "zero overhead"-Ziel von C++ vereinbar ist.

    std::vector<int> pv (10); // oder std::[tr1::]array<int,10> pv;
    for (int i=0; i<10; ++i) {
      pv[i] = 11*(i+1);
    }
    


  • Ich habe in einem Dialog 10 Eingabefenster mit den Variablennamen m_1 bis m_10. Und die kann ich ja nicht direkt über einen Befehl in ein Array auslesen lassen - zumindest kenne ich keinen Befehl hierzu.
    Ich dachte nur es wäre vielleicht möglich, da die Eingabefelder über aufsteigende IDs verfügen!



  • Du kannst dir doch aber ein Array mit diesen Eingabefenstern erzeugen. Welche IDE verwendest du denn?



  • Ich verwende MS Visual C++ 6.0 ! Das lässt bei mir nur eindeutige Variablennamen und keine Arrays zu. Ich verwende den Klassen-Assistenten/Member-Variablen/Variable hinzufügen...



  • Du kannst doch aber ein Array von Zeigern auf die Eingabefelder erstellen und dieses Array dann im Code selber füllen.
    Ich habe das Gefühl, dass dir C++ Grundlagen fehlen. Da ist ein Ausflug in GUI-Programmierung vielleicht noch zu früh.
    Warum nimmst du eigentlich den völlig veralteten VC6?



  • Vielleicht hast du recht, ich bin noch relativ neu. Aber wenn ich mit dem Klassen-Assistent arbeite, muss ich nunmal eindeutige Namen für eine Member-Variable angeben. Diese Werte kann ich natürlich einem Array zuordnen.
    Ich hatte im folgenden versucht, 81 Felder mit Namen m_1 bis m_81 mit GetWindowText/SetWindowText zu bearbeiten und dachte, das geht mit einer for-Schleife, die dynamisch für jeden Durchlauf einen Variablennamen erzeugt.
    Aber einmalig muss ich ja trotzdem 81 Zuweisungen machen...



  • Man muss diesen Klassen-Assistenten ja nicht verwenden und kann alles auch manuell machen.
    Ich würde dir vorschlagen erstmal C++ Grundlagen mit Hilfe von Konsolenprogrammen zu lernen.



  • @MatzeW

    Markier mal eins der Eingabefelder mit der Maus und mach ein Copy&Paste (Ctrl.-C, Ctrl.-V). Ich bilde mir ein, daß der Assistent dann von sich aus anbietet, ein Array zu erstellen. Is aber schon ne Weile her, daher keine Garantie...


Anmelden zum Antworten