textdateiinhalte in funktion einbinden



  • guten morgen,
    ich habe ein problem, nämlich will ich meine eingabedaten aus einer datei, in eine vorgefertigte funktion einbinden, doch leider klappt dies nicht
    würde mich freuen wenn mir da bitte jemand weiterhelfen kann.
    gruß frank

    hier der c++ quelltext:
    #include <cstdlib>
    #include <iostream>
    #include <fstream>
    #ifndef VITERBIS
    #define VITERBIS
    #define POLYA 0x6d
    #define POLYB 0x4f
    namespace SPUC {
    #ifndef DOXYGEN_SHOULD_SKIP_THIS
    class viterbi_state
    {
    public:
    unsigned long path; /* Decoded path to this state /
    long metric; /
    Cumulative metric to this state */
    };
    #endif
    class viterbi
    {
    public:
    bool decoded;
    bool enable_output;
    bool output_ready;
    long prev_value;
    viterbi_state state0[64],state1[64],*state,*next;
    int bitcnt;
    int beststate;
    long depuncture_bit_number;
    bool phase;
    viterbi() {
    reset();
    state = state0;
    next = state1;
    for(int i=0;i<64;i++) state[i].metric = -999999;
    state[0].path = 0;
    }
    void reset() {
    phase=0;
    depuncture_bit_number=0;
    decoded=1;
    output_ready=0;
    enable_output=0;
    bitcnt=0;
    prev_value=0;
    beststate=0;
    state = state0;
    next = state1;
    // Initialize starting metrics
    // ...no longer prefer 0 state
    for(int i=0;i<64;i++) {
    state0[i].metric = -999999;
    state1[i].metric = -999999;
    state0[i].path = 0;
    state1[i].path = 0;
    }
    }
    bool clock(long value) {
    bool z;
    decoded = !decoded;
    if (decoded) z = decode(prev_value,value);
    prev_value = value;
    if (enable_output) output_ready = decoded;
    return(z);
    }
    bool decode(long s0, long s1);
    void minimize_metrics() {
    long bestmetric = state[beststate].metric;
    for(int i=0;i<64;i++){
    state[i].metric -= bestmetric;
    }
    }
    bool depuncture(const long steal, long soft_in);
    };
    }
    #endif
    using namespace std;
    int main(int argc, char *argv[])
    {
    string line;
    ifstream myfile ("faltungscodierer2.txt");
    if (myfile.is_open())
    {
    while (! myfile.eof() )
    {
    getline (myfile,line);
    cout << line << endl;
    }
    myfile.close();
    }
    else cout << "Datei kann nicht geoeffnet werden";

    system("PAUSE");
    return EXIT_SUCCESS;
    }

    hier der inhalt der datei:
    0.000000000e+000
    0.000000000e+000
    1.000000000e+000
    1.000000000e+000
    0.000000000e+000
    0.000000000e+000
    0.000000000e+000
    1.000000000e+000
    0.000000000e+000
    1.000000000e+000
    0.000000000e+000
    0.000000000e+000
    1.000000000e+000
    1.000000000e+000
    1.000000000e+000
    0.000000000e+000
    0.000000000e+000
    0.000000000e+000
    0.000000000e+000
    0.000000000e+000
    0.000000000e+000
    1.000000000e+000
    0.000000000e+000

    danke im vorraus



  • probiers mal mit bb-codes


  • Administrator

    frankief schrieb:

    ..., doch leider klappt dies nicht

    Ungültige Fehlerbeschreibung. Fehlertext konnte nicht aktzeptiert werden, bitte wiederholen sie die Eingabe.

    frankief schrieb:

    ... Quellcode ...

    Ungültiger Quellcode. Quellcode konnte nicht aktzeptiert werden, bitte verwenden sie C/C++ Tags (gleich unter diesem Smilie :)) und wiederholen sie die Eingabe mit einem formatierten Quellcode.

    Aja und nochwas:
    Aus deiner main-Funktion werde ich nicht ganz schlau. Du versuchst dort die Werte irgendwie gar nicht weiterzugeben. Wohin sollen die Werte denn gehen? Deine Textdatei kann man ganz einfach einlesen. Hier mal ein Beispiel, wo die Daten in einen std::vector gespeichert werden, ohne komplexe aber vereinfachende STL.

    #include <vector>
    #include <fstream>
    
    int main()
    {
      std::ifstream file("input.txt");
    
      double value;
      std::vector<double> values;
    
      while(file >> value)
      {
        values.push_back(value);
      }
    
      return 0;
    }
    

    Und nochwas:

    frankief schrieb:

    danke im v******

    Man schreibt voraus mit einem R 😉

    Grüssli



  • Probier's mal damit:

    #include <iostream>
    #include <fstream>
    #include <string>  // Hat gefehlt!
    
    using namespace std;
    
    int main(int argc, char* argv[])
    {
        string line;
        ifstream myfile("faltungscodierer2.txt");
    
        if (myfile.is_open() == true)
        {
            while (myfile.eof() != true)
            {
                getline(myfile, line);
                cout << line << endl;
            }
    
            myfile.close();
        }
        else
        {
            cout << "Datei kann nicht geoeffnet werden";
        }
    
        return 0;
    }
    


  • danke schonmal an dieser stelle,
    das problem liegt eigentlich daran, das ich die geöffneten bzw. die aus der textdatei eingelesen werte, oben in die die funktion einbauen soll, doch ich weiss nicht an dieser stelle wie ich das machen soll; stehe da wie der esel vorm berg 😞
    mit anderen worten soll diese datenfolge aus der textdatei dort oben eingebunden werden, und weiterverarbeitet werden.

    danke für die schnellen antworten bislang,
    ich wäre euch sehr dankbar, wenn ihr mir bei diesem problem weiterhelfen könnt.
    danke nochmals!


  • Administrator

    Wo sollen die Daten denn rein? Was soll gemacht werden? Was ist das Ziel? Was war dein Versuch? Was ist fehlgeschlagen? Wie ist es fehlgeschlagen?
    Und editiere zumindest deinen alten Beitrag, damit man den Quellcode auch lesen kann. Wir können dir auch nicht helfen, solange du uns nicht genauere und bessere Informationen gibst 😉

    Grüssli



  • also ich weiss nicht wie ich die eingelesenen daten in die funktionen oben einbinden soll, die eingelesenen daten sollen einen datenstrom entsprechen.
    die aufgabe dieser funktionen z.B. viterbi ,soll es sein aus der datenfolge die bestmögliche pfadmetrik der daten zu finden (die algorithmen sind schon in den funktionen vorhanden und funktionieren).

    danke nochmals für die schnelle antwort darauf 😉



  • frankief schrieb:

    also ich weiss nicht wie ich die eingelesenen daten in die funktionen oben einbinden soll, die eingelesenen daten sollen einen datenstrom entsprechen.

    Welche eingelesenen Daten wie wohin einbinden? Kannst du das etwas genauer ausdrücken? Was hast du schon, an welchem Punkt scheiterst du? Am Einlesen? An der Übergabe an die Funktionen? An der Speicherung?

    Und benutze doch endlich mal [cpp]-Tags, wenn du willst, dass dein Code angeschaut wird...


Anmelden zum Antworten