#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);
}
}
}
私は、私はそれらを読むためにfgets
機能を使用C. にtxtファイルから行ずつ読みしようとしているが、機能は「Intalize」と呼ばれる最初の行を読み取り、他の行に進みませんファイル内にあります。私はしようとしましたファイルから行を読み込む方法は?
printf("%s",str_orders)
そしてそれは "Intalize"を返しています。 fgets
は行に進まなかった。
どうすれば修正できますか?
の可能性のある重複このコードはコンパイルされません(http://stackoverflow.com/questions/3501338/c-read-file-line-by-line) – Unimportant
を[Cが行毎にファイルを読みます]。程遠い。 [mcve]を入力してください。 –