テキスト ファイルに 2 つの整数と、テキストの行を保存する必要があります。各intを1行に、テキストの各行を新しい行に書き込むことで、成功しました。しかし、それを読むために、私はいくつかの問題を見つけました。私はこれをやっています:
FILE *f = fopen(arquivo, "r");
char *lna = NULL;
fscanf(f, "%d\n%d\n", &maxCol, &maxLin);
//↑This reads the two ints, works fine in step-by-step
for (;;) {
fscanf(f, "%s\n", &lna);
//↑This sets lna to NULL always, even if there are more lines
if (lna != NULL)
lna[strlen(lna) - 1] = '\0';
if (feof(f))
break;
inserirApos(lista, lna, &atual);
}
fclose(f);
私はいくつかの異なる方法を試しましたが、うまくいきませんでした。get などを使用して、文字列のようにすべてを読み取ることができることは理解していますが、文字列にスペースが含まれていると問題があると思います。自分のやり方がベストなのか、どこが悪いのか知りたかったのです。各行の最大長を渡す必要があるこれらの方法の 1 つ (どちらも機能しませんでした) を見つけました。必要に応じてこの情報を知っています。以前に読んだ maxCol です。