Nur kurz zum Verständnis, ich muss zurzeit einige Teile einer Shell nachempfinden und programmieren. Komplett in C, nackt, nur mit Standartbibliotheken. Ausführbar in der richtigen Shell, halt wie ein Imitat. Jedoch bereitet mir die "grep" Funktion Kopfschmerzen.
Wenn ich eine Datei öffne, diese zeilenweise auslese, fehlt jeweils das erste Zeichen jeder Zeile. Ich verstehe nicht, woher dieser Fehler kommt, habe auch einige Umformungen des Codes ausprobiert, jedoch fehlt wirklich immer das erste Zeichen. Google & co hilt mir auch nicht.
Hier ist der Codeschnipsel nur für's auslesen. Vorher wurde die Datei natürlich geöffnet und danach auch wieder geschlossen.
Die Definierung der char etc ist natürlich nicht an der Stelle, hab die da nur eben eingefügt damit ihr wisst, wie die Sachen definiert wurden.
Code: Alles auswählen
FILE *datei ;
int zaehler;
char zeile [256] = "";
// wort ist das zu vergleichende wort als string ohne enter.
while( (zaehler=fgetc(datei)) != EOF)
{
fgets (zeile, 256, datei); // auslesen der zeile
if (strstr (zeile, wort)) // falls in der zeile das suchwort vorkommt
{
printf("%s", zeile); // ausgabe dieser zeile
}
strcpy (zeile, "" ) ; // zeile wieder "leeren"
}
Sorry, falls das hier ein bisschen durcheinander ist, ich bin gerade etwas aufgelöst und Matsche im Hirn.