array an funktion übergeben



  • Einen schönen Tag Allerseits !!!

    Ich möchte in meinem Programm den Teil des Code für die Abfrage ob alle Eingangswerte OK sind in eine Funktion(z.B. check_data) in einer extra Datei (z.B. check_data.cpp) auslagern.Dabei stehen die Eingangswerte in einem Array.

    ich habe es folgendermaßen versucht:

    #include <iostream>
    #include "check_data.cpp"

    void main()
    {

    float array[24];

    array[1] = ...
    .
    .
    .
    check_data(array[]);
    .
    .
    .
    }

    die Datei check_data.cpp sieht prinzipiell so aus:

    #include <iostream>

    void check_data(float check_array[24])
    {

    cout << ....
    ...

    return
    }

    ich bekomme eine Fehlermeldung beim Aufruf der Funktion (check_data(array[]);
    und außerdem kennt der compiler innerhalb der check_data funktion kein cout.

    kann ich einer Funktion einfach ein ganzes Array so übergeben, wie ich es getan hab und warum funktioniert innerhalb der check_data funktion kein cout???

    Danke und schöne Grüße,

    revolutz



  • da hat doch vor 5 minuten jemand das gleiche Problem gehabt.

    OK, also das mit der Übergabe scheint sich erledigt zu haben.
    Ich weiß allerdings immer noch nicht, warum innerhalb der ausgelagerten Funktion trotz includieren von iostream cout und endl usw nicht bekannt sind.

    Grüsse,

    revolutz



  • revolutz schrieb:

    Einen schönen Tag Allerseits !!!

    Ich möchte in meinem Programm den Teil des Code für die Abfrage ob alle Eingangswerte OK sind in eine Funktion(z.B. check_data) in einer extra Datei (z.B. check_data.cpp) auslagern.Dabei stehen die Eingangswerte in einem Array.

    ich habe es folgendermaßen versucht:

    #include <iostream>
    #include "check_data.cpp"

    Das ist eher gewöhnungsbedürftig.

    void main()

    int main()

    check_data(array[]);

    check_data(array);

    die Datei check_data.cpp sieht prinzipiell so aus:

    #include <iostream>

    Es ist normalerweise nicht so schlau, etwas zwei mal einzubinden, wen man kaum Informationen drüber hat.

    cout << ....

    std::cout << ...

    return
    }

    Eine "void-Funktion" braucht kein return.



  • revolutz schrieb:

    Ich weiß allerdings immer noch nicht, warum innerhalb der ausgelagerten Funktion trotz includieren von iostream cout und endl usw nicht bekannt sind.

    std::cout



  • Danke !!!

    using namespace std;

    war des Rätsels lösung

    ich habe nur deshalb zweimal includiert, da ich völlig naiv sehen wollte, ob es so funktioniert. ansonsten weiß ich schon das man nur einmal includiert.

    An Daniel:

    Was meinst Du mit gewöhnungsbedürftig ?? Sollte ich es lieber als .h einbinden ??

    Ansonsten scheint es zu laufen,

    Danke euch für die schnelle Hilfe,

    revolutz



  • Was meinst Du mit gewöhnungsbedürftig ?? Sollte ich es lieber als .h einbinden ??

    Ja, es ist immer sehr unelegant, .cpp- Dateien per #include einzubinden.


Anmelden zum Antworten