Vergleich von Variablen und Arays
-
Hiho,
ich habe eine Variable:char daten;
In diese lade ich eine Zeile einer Datei:
while((daten = fgetc(readfile)) != EOF) { if((kontrolle(daten, kontrollwort)) == true) return; }
kontrolle ist folgende Funktion:
bool kontrolle(char daten1[], char kontrollwort2[]) { for (int j=0; j<17; j++) { if((daten1[j] != kontrollwort2[j])) return false; } return true; }
und das Kontrollwort:
char kontrollwort[18]="***END OF FILE***";
Wie schaffe ich es nun, das ich überprüfen kann, ob in "daten" das gesuchte Kontrollwort enthalten ist? Der Momentane Code bricht leider ab und ich erhalte die Fehlermeldung "main.cpp(63) : error C2664: 'kontrolle' : Konvertierung des Parameters 1 von 'char' in 'char []' nicht moeglich". Ich weiss, das ich ja bei daten kein Array habe, weiss allerdings nichts, wie ich den vergleich realisieren kann, da in "daten" ja mit fgetc(readfile); geschrieben werden soll (readfile ist ein pointer auf eine Datei).
Thx für eure Hilfe,
iuizPS: Ich hab leider keine Vorschaufunktion im Board gefunden, und hoffe, das man alles lesen kann....
-
char Arrays (Strings) vergleicht man am besten mit strcmp().
-
Guten Morgen,,,...
also zu erst bezweifele ich das du eine Zeile einliest mit dem Code.
char daten gibt dir Platz für ein einzelnes Zeichen.... !Nun die Kontrollfunktion ist so durchaus möglich jedoch warum sollte man das Rad zweimal erfinden. So mady schon sagt wäre strcmp eine geeigente Lösung für dich.
Jedoch was bezweckst du mit diesem Code. Ich meine du machst dir arbeit wo es eigentlich mit ein paar Aufrufen getan wäre ?
Poste mal ein wenig mehr Informationen, so kann man dir helfen...
-
Also ich kann mir sicher vorstellen, das man das besser lösen kann, aber ich bin einfach nicht gerade ein guter Coder.
Also ich hab mir ein Programm geschrieben (ein paar threads weiter unten), das verschiedene Datein aus einer Datei (files.txt) einliest, und dann in eine andere Datei schreibt, am Ende jeder datei kommt "***END OF FILE***". Dann wird in der files.txt nachgesehen, ob es noch eine Datei gibt, und wenn ja, wird sie unter das "***END OF FILE***" geschrieben. Ich will nun ein Programm schreiben, das die files.txt einliest und dann aus der datei, in der sich die anderen datein befinden wieder einzelne Datein macht.
Also erstelle ich eine datei (der erste eintrag in der files.txt) und schreibe solange daten in sie, bis in der(ich nenne sie mal ausgabe.txt (also die, wo alle datein drinn sind)) ausgabe.txt das "***END OF FILE***" erscheint.Man könnte es also als ein archiv betrachten. Alle Datein befinden sich in einer, und können dann wieder zu vielen Datein werden (wie bei .zip Datein (ohne kompression)).
Hoffe ich drücke mich nicht zu umständlich aus ;).