Ich versuche ein Programm zu erstellen, das Text aus einer Datei einliest und nach bestimmten Wörtern sucht, dann verarbeite ich von dort aus. Ich verwende Arrays, um die Daten zu speichern, die ich will, aber wenn ich versuche, auf das Array außerhalb der Funktion zuzugreifen, ist nur der erste Punkt im Array belegt, und es ist mit dem letzten Wert, der von der Funktion gelesen wird. Natürlich ist der Code unvollständig, aber ich muss wissen, was das verursacht?Warum behalten meine Arrays außerhalb der Funktion keine Werte?
#include<iostream>
#include<string>
#include<fstream>
using std::cout; using std::cin; using std::endl; using std::string;
using std::ifstream; using std::getline;
string data, strL = "language", strC = "created", strT = "timestamp";
string lang[2], date[2];
int count = 0, l = 0, c = 0;
ifstream rawData("testsample.txt");
void search(int count, string data, string heading) {
int x, y;
if (data.find(heading) != string::npos) {
//cout << heading << endl;
if (heading == strL) {
x = 4; y = 2;
lang[count] = data.substr(data.find(strL) + strL.length() + x, y);
//cout << lang[count] << endl;
}
if (heading == strC) {
x = 4; y = 29;
date[count] = data.substr(data.find(strC) + strC.length() + x, y);
}
}
count++;
}
int main() {
while (getline(rawData, data)) {
search(l, data, strL);
search(c, data, strC);
//count++;
}cout << lang[0] << " " << lang[1] << endl;
cout << date[1];
return 0;
}
Der abgebildete Code ist ein unversöhnliches Chaos. Globale Variablen. Bizarre, unlogische Einrückung, die an manchen Stellen zufällig verschwindet. Magische Konstanten. Was auch immer es zu tun versucht, es kann nicht richtig sein, und es gibt keine Möglichkeit, es richtig zu machen, kurz davor, das Ganze zu verwerfen und von vorne anzufangen. –