The dictionary fileÜberprüfung zwei Strings auf Gleichheit mit einem Eingang und andere aus der Datei
Dies ist mein Code. Hier ist dict.txt die verknüpfte Datei. Die Zeichenkettensuche wird von einem Vektor initialisiert (möglich), der Zeichenketten enthält. Ich benutze getline, um aus der Datei zu lesen und jede Zeile in der Zeichenfolge temp zu speichern. Nun ist das Problem, wenn ich search == temp
ausführen, ist die Ausgabe falsch, was wahr sein sollte. Ich muss die Zeichenfolge aus der Wörterbuchdatei ausdrucken. Also entziehe ich jede Zeile aus der Datei und vergleiche aber die Gleichheit ist irgendwie abgehört oder ich mache irgendwo ein Problem.
ifstream infile("namenumdict.txt");
string search="", temp="";
int k=0;
for(int i=0; i<possible.size(); i++)
{
search=possible[i];
while(getline(infile, temp))
{
if(search==temp)
{
fout<<temp<<endl;
k++;
}
}
}
Ich habe durch Debugging überprüft, dass alle Dinge gut funktionieren. search
wird ebenso initialisiert wie temp
.
Bitte lassen Sie mich das Problem wissen. Danke
Unrelated: Wollten Sie nur nach dem ersten Eintrag in 'possible []' suchen? Wenn Sie einmal auf eine Zeichenfolge stoßen, die sich NICHT in der Datei befindet (von dem Punkt aus, an dem Sie zuletzt Ihre Suche abgebrochen haben), sind keine weiteren Suchen erfolgreich, da "infile" auf eof steht. – WhozCraig
Ja, WhozCraig hat Recht. Verschieben Sie die 'mögliche' Schleife in die' while (getline() ...) 'Schleife –
@WhozCraig Ja! Ich habe es zum ersten Mal versucht, also habe ich nicht darüber nachgedacht. Vielen Dank. – SVG