Hilfe bei Variablen
-
mechatroniker schrieb:
" Einfach eine Zeile lesen, gelesene Daten als Mapindex benutzen und dann den Buchstaben an diesem Mapindex ausgeben."
kannst du das vielleicht etwas genauer erklären?
tia
Einfach eine Zeile lesen
gelesene Daten als Mapindex benutzen
den Buchstaben an diesem Mapindex ausgeben
-
vielen Dank für die links SeppJ.
Habe versucht mich dort durchzuarbeiten, jedoch steig ich immer noch nicht dahinter.
Zeile auslesen ist ja alles kein Problem aber der Rest...naja...Kannst du mir nicht ein Code-Beispiel geben? Falls nicht zu aufwendig?
TIA
-
Sag doch, was du konkret nicht verstehst.
-
"gelesene Daten als Mapindex benutzen und dann den Buchstaben an diesem Mapindex ausgeben."
die links gibt für mich keinen Aufschluss, wie den nun Daten aus einer .txt als Mapindex benutzt werden
-
Du hast ja geschrieben Zeile lesen kein Problem:
string geleseneZeile; // ... angenommen der string ist schon von dir gefüllt map<string, string> meineMap; // Initialisierung mit den Werten ASDGH123 = a usw.. string dasWasIchWill = meineMap[geleseneZeile]; cout << dasWasIchWill << endl;#edit: Mit dem map Index könnten dir noch newlines Probleme bereiten.
Kommt drauf an wie genau du die Zeile ausliest. Poste doch mal was du bisher hast wenn hiermit deine Fragen noch nicht beantwortet sind.
-
bin jetzt erstmal soweit gekommen:
#include <iostream>
#include <fstream>
#include <string>
#include <map>using namespace std;
int main () {
string line;
ifstream file ("Test.txt");
if (file.is_open()){
while (! file.eof() )
{
getline (file,line);string line;
map <string, string> liste;
liste ["1:042042B230"]= "a" ;
liste ["1:0108827DF6"]= "b" ;
liste ["1:0108827DA0"]= "c" ;
liste ["1:0108827DA9"]= "d" ;string result = liste [line];
cout << result << endl;}
file.close();
}else cout << "Unable to open file";
cin.get();
}
Wenn ich dies durchlaufen lasse, dann bekomme ich nur Zeichenumbrüche, entsprechend der Anzahl der Zeilenanzahl aus der .txt
Wo ist der Fehler?
Aso und danke erstmal für eure bisherige Hilfe. TOP!!!
-
Nimm bitte C/C++ Tags..
#include <iostream> #include <fstream> #include <string> #include <map> using namespace std; int main () { string line; ifstream file ("Test.txt"); if (file.is_open()) { while (! file.eof() ) { getline (file,line); string line; map <string, string> liste; liste ["1:042042B230"]= "a" ; liste ["1:0108827DF6"]= "b" ; liste ["1:0108827DA0"]= "c" ; liste ["1:0108827DA9"]= "d" ; string result = liste [line]; cout << result << endl; } file.close(); } else cout << "Unable to open file"; cin.get(); }Einrücken wäre auch eine gute Sache.
Du erhältst nur Zeilenumbrüche weil in der map kein Element entsprechend dem gefütterten Index vorhanden ist und entsprechend nichts ausgegeben wird, der Zeilenumbruch entsteht durch das endl.
Wie gesagt, das Problem sind die newlines die noch zusätzlich in der Datei sind.
Entweder du entfernst sie nach dem einlesen der Zeile oder du schreibst die eben auch noch mit in den Index.
-
#include <iostream> #include <fstream> #include <string> #include <map> using namespace std; int main () { string line; // guck mal hier ifstream file ("Test.txt"); if (file.is_open ()) { while (!file.eof ()) { getline (file, line); string line; // Und hier map < string, string > liste; liste["1:042042B230"] = "a"; liste["1:0108827DF6"] = "b"; liste["1:0108827DA0"] = "c"; liste["1:0108827DA9"] = "d"; string result = liste[line]; cout << result << endl; } file.close (); } else cout << "Unable to open file"; cin.get (); }
-
DANKE SCHÖÖÖN!
entfernen vom zweiten "string line" und es funktioniert!
LG
Mechtroniker
-
mechatroniker schrieb:
DANKE SCHÖÖÖN!
entfernen vom zweiten "string line" und es funktioniert!
LG
MechtronikerWeißt du denn auch, warum man es trotz der zwei
string linecompilieren konnte, es danach aber nicht mehr funktioniert hat? Du kannst hier etwas wichtiges über C++ lernen, wenn du dies verstehst.
-
nein das weiß ich nicht...
wenn´s kurz geht kannst du mir das noch verraten...ansonsten find ich es aber auch nicht so wild...
ihr habt mir bisher schon weiter geholfen als ich erwartet hätte
-
mechatroniker schrieb:
nein das weiß ich nicht...
wenn´s kurz geht kannst du mir das noch verraten...ansonsten find ich es aber auch nicht so wild...
ihr habt mir bisher schon weiter geholfen als ich erwartet hätteDas kann ich leider nicht kurz erklären, sonst hätte ich es getan. Ich kann dich da nur an Literatur verweisen. Schau mal in einem Lehrbuch nach Scope (zu deutsch Gültigkeitsbereich), Lebensdauer von Variablen und den Regeln zur Namensauflösung. Das dürfte alles zusammen in einem der Kapitel des Lehrbuchs stehen.