Ich muss erkennen, in welcher Zeile die Zeichenfolge in csv-Datei in c .. ive versucht mit dem Zählen der '\ n' mal bis wir zu unserem bekommen string place ... aber es immer drucken, das ist in der zweiten Zeile, egal was die Eingabe ist. sein wie sein nicht wirklich um die Datei zu lesen und kopieren Sie den Text zu Buff String ... und auch die strcpsn Arbeit nichtwie in der Zeile zu finden ist die Zeichenfolge in csv-Datei in c
printf("\nEnter the string you want to search: ");
getchar();
myFgets(str, LEN); //getting input
file = fopen(adr, "r"); //opening file
if (file == NULL)
{
printf("Eror opening first file\n");
return 1;
}
fseek(file, 0, SEEK_END);
len = ftell(file);
fseek(file, 0, SEEK_SET);
char* buff = (char*)calloc(strlen(str), sizeof(char));
if (buff == NULL)
{
printf("Allocation eror!\n");
return 1;
}
fread(buff, sizeof(char), len, file);
seek = strcspn(buff, str); //checking where is the string starting
while (lineSeek <= seek)
{
ch = fgetc(file);
if (ch == '\n')
{
line++;
lineSeek = ftell(file);
}
}
printf("its on %d line", line + 1);
Sie haben einen Schmortopf mit 'fseek' und' calloc' und 'fread' und' feof' und 'fgetc'. Wenn dies eine Textdatei ist, bleiben Sie bei textbasierten Funktionen. Sie lesen jede Zeile mit 'fgets' und prüfen, ob sie Ihre Zeichenfolge mit' strstr' enthält, bis Sie sie gefunden haben. Ich schlage vor, wieder zu beginnen, sorry, mit einem schönen langen 'char []' Puffer, um jede Zeile einzulesen. –
Warum verwenden Sie den Rückkehrcode von 'feof', um zu bestimmen, wie viele Zeichen zuerst aus der Datei gelesen werden sollen? –
behoben, dass ... aktualisiert. funktioniert immer noch nicht ... –