Brauche eine Funktion die 6 Zahlen einliest und diese in einer Liste abspeichert.



  • Hallo 🙂

    Da ich keine Antworten bekommen habe, versuche ich es auf einem anderen weg...
    Kann mir jemand eine einfache Funktion schreiben, die 6 zahlen,welche in den ersten 6 Zeilen einer config.txt datei stehen, in einer Array(Liste) abspeichert?
    Ich habe in internet kein Beispiel gefunden das genau dies tut. Die meisten geben die Zahlen einfach nur aus...

    Diese Liste wird nun in meiner Funktion dazu benötigt Mausklicks zu setzen.
    Funktion:

    SetCursorPos(listxy[0],listxy[1]);//setzt die Position der Maus
         mouse_event(MOUSEEVENTF_LEFTDOWN,listxy[0],listxy[1],0,0);//Mausklick starten
         mouse_event(MOUSEEVENTF_LEFTUP,listxy[0],listxy[1],0,0);//Mausklick beenden
    

    Danke schonmal für eure (hoffentlich) gute Ideen 💡

    Lg
    Dm3xD

    Hier nochmal die config.txt 😉

    287
    672
    543
    208
    258
    699
    


  • #include <fstream>
    #include <vector>
    using namespace std;
    
    int main()
    {
     ifstream file("config.txt");
     vector<int> zahlen;
     for(int i; file>>i; zahlen.push_back(i));
    }
    


  • out schrieb:

    #include <fstream>
    #include <vector>
    using namespace std;
    
    int main()
    {
     ifstream file("config.txt");
     vector<int> zahlen;
     for(int i; file>>i; zahlen.push_back(i));
    }
    
    std::ifstream file("config.txt");
    std::vector<int> zahlen(std::istream_iterator<int>(file), std::istream_iterator<int>());
    

    🤡



  • Danke, allerdings funktioniert es immer noch nicht.
    Er klickt immer oben links in der Ecke also auf Position 0,0

    void getConfig()
    {
      ifstream file("config.txt");
      vector<int> listxy;
      for(int i; file>>i; listxy.push_back(i));
    }
    
    int main()
    {    
        getConfig();
        [...]
        mausklick();
        [...]
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    
    void mausklick()
    {    
         SetCursorPos(listxy[0],listxy[1]);
         mouse_event(MOUSEEVENTF_LEFTDOWN,listxy[0],listxy[1],0,0);
         mouse_event(MOUSEEVENTF_LEFTUP,listxy[0],listxy[1],0,0);
    
         seconds=605;
         wait();
    

    Das Programm hat funktioniert als ich statt "listxy[1]" z.B. 354 eingegeben hab. Und genau das soll er jetzt auch tun nur das ich die Position eben in der config.txt festgelegt habe...

    Lg
    Dm3xD



  • Sonne, ich hab deinen Beitrag noch nicht gelesen gehabt. Ich werds gleich ausprobieren. Danke.
    Dm3xD



  • Ich finde es richtig schlimm, dass du zwar schon grafisch die Maus herumschubsten willst, aber nichtmal die simple Datei Ein- und Ausgabe beherrschst.

    Mein Tipp an dich:
    Arbeitete dich erstmal durch die Grundlagen einer Programmiersprache.



  • So hier nochmal:

    [code]void getConfig()
    {
      std::ifstream file("config.txt");
      std::vector<int> listxy(std::istream_iterator<int>(file), std::istream_iterator<int>());
      for(int i; file>>i; listxy.push_back(i));
    }
    

    [/code]

    und er sagt als Fehlermeldung beim Compilieren:

    30 `istream_iterator' is not a member of `std'
    30 expected primary-expression before "int"
    30 `istream_iterator' is not a member of `std'
    30 expected primary-expression before "int"



  • " "



  • Programmierfachprofi schrieb:

    Ich finde es richtig schlimm, dass du zwar schon grafisch die Maus herumschubsten willst, aber nichtmal die simple Datei Ein- und Ausgabe beherrschst.

    Mein Tipp an dich:
    Arbeitete dich erstmal durch die Grundlagen einer Programmiersprache.

    Ich bin gut ohne die Sachen ausgekommen ... bisland 😛
    Danke ^^
    Dm3xD



  • Dm3xD schrieb:

    So hier nochmal:

    [code]void getConfig()
    {
      std::ifstream file("config.txt");
      std::vector<int> listxy(std::istream_iterator<int>(file), std::istream_iterator<int>());
      for(int i; file>>i; listxy.push_back(i));
    }
    

    [/code]

    und er sagt als Fehlermeldung beim Compilieren:

    30 `istream_iterator' is not a member of `std'
    30 expected primary-expression before "int"
    30 `istream_iterator' is not a member of `std'
    30 expected primary-expression before "int"

    Du vergisst <iterator> einzubinden.
    Außerdem ist Zeile 3 in der main() unnötig! Meins war ein kompletter Ersatz von outs Version.



  • habe alles so gemacht wie ich sollte:

    #include <cstdlib>
    #include <iostream.h>
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <time.h>
    #include <fstream>
    #include <stdexcept>
    #include <vector>
    #include <interator>
    

    alles included 😉

    void getConfig()
    {
      std::ifstream file("config.txt");
      std::vector<int> listxy(std::istream_iterator<int>(file), std::istream_iterator<int>());
      for(int i; file>>i; listxy.push_back(i));
    }
    

    Funktion sollte doch auch so sein wie hier oder?

    und trotzdem 2 Fehlermeldungen beim kompilieren... was is denn jetzt falsch???

    31 `istream_iterator' is not a member of `std'
    31 expected primary-expression before "int"

    es liegt warscheinlich auch einfach an mir aber wenn du noch en Vorschlag hast 😃
    Dm3xD



  • habe alles so gemacht wie ich sollte:

    #include <interator>

    alles included

    Ganz sicher?



  • Hallo Dm3xD,

    void getConfig()
    {
      ifstream file("config.txt");
      vector<int> listxy;
      for(int i; file>>i; listxy.push_back(i));
    } // <== hier wird mit Verlassen des Scopes das Objekt 'listxy' gelöscht und damit gehen die eingelesenen Daten verloren
    
    void mausklick()
    {    
         SetCursorPos(listxy[0],listxy[1]); // <== wo ist 'listxy' definiert? - Du verwendest doch nicht etwa globale Variablen?
         mouse_event(MOUSEEVENTF_LEFTDOWN,listxy[0],listxy[1],0,0);
         mouse_event(MOUSEEVENTF_LEFTUP,listxy[0],listxy[1],0,0);
    
         seconds=605;
         wait();
    

    Die Variable listxy in mausklick hat mit der Variable listxy in getConfig nichts zu tun.

    Tipp: arbeite Dich zunächst in die Grundlagen einer Programmiersprache ein.

    :xmas2: Werner



  • @Dm3xD
    Hinweis:
    mouse_event ist eine veraltete WIN API Funktion benutzt lieber SendInput.

    mouse_event
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms646260(v=vs.85).aspx

    MSDN schrieb:

    Note This function has been superseded. Use SendInput instead.

    SendInput:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms646310(v=vs.85).aspx


Anmelden zum Antworten