#define MAX_READING 100;
char str_orders[MAX_READING], str_books[MAX_READING],
books_updated[MAX_READING], *token, *token1, p[MAX_READING],
File * books_orders, *books, books_updated;
while (fgets (str_orders, MAX_READING, books_orders) != NULL) {
if (str_orders[strlen (str_orders) - 1] == '\n')
str_orders[(strlen (str_orders) - 1)] = 0;
if (strcmp (str_orders, "Initialize") == 0) {
while (fgets (str_books, MAX_READING, books) != NULL) {
if (str_books[strlen (str_books) - 1] == '\n')
str_books[(strlen (str_books) - 1)] = 0;
token = strtok (str_books, "$$$");
strcpy (p, token);
token = strtok (NULL, "$$$");
copy = atoi (token);
add (head, p, copy);
}
}
printf ("%s\n", str_orders);
if (strcmp (str_orders, "Initialize") != 0
&& strcmp (str_orders, "Finalize") != 0) {
token1 = strtok (str_orders, "$$$");
strcpy (order, token1);
token1 = strtok (NULL, "$$$");
strcpy (book_name, token1);
token1 = strtok (NULL, "$$$");
copy = atoi (token1);
if (strcmp (order, "Return") == 0)
returnbook (head, book_name, copy);
if (strcmp (order, "Borrow") == 0)
borrowbook (head, book_name, copy);
if (strcmp (str_orders, "Finalize") == 0) {
while (head != NULL) {
fprintf (books_update, "%s", head->name);
fprintf (books_update, " $$$ ");
fprintf (books_update, "%d", head->copies);
}
}
}
Ich versuche, Zeile für Zeile aus einer txt-Datei zu lesen in C. ich die fgets
Funktion verwendet, um sie zu lesen, aber die Funktion liest die erste Zeile „Intalize“ genannt, gehen keine anderen Linien in der Datei. Ich habe versucht,Wie wird zeilenweise aus einer Datei gelesen?
printf("%s",str_orders)
und es gibt "Intalize" zurück. Die fgets
ging nicht zu den Zeilen.
Wie kann ich das beheben?
Mögliche Duplikat [C lesen Datei Zeile für Zeile] (http://stackoverflow.com/questions/3501338/c-read-file-line-by-line) – Unimportant
Dieser Code wird nicht kompiliert. Nicht annähernd. Bitte geben Sie eine [MCVE] an. –