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 beendenDanke schonmal für eure (hoffentlich) gute Ideen

Lg
Dm3xDHier 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,0void 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 dermain()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 verlorenvoid 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
listxyinmausklickhat mit der VariablelistxyingetConfignichts 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).aspxMSDN 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