我需要在文本文件中存儲兩個整數,然後是文本的行。我已經成功地通過將每個int寫入一行並將每行文本寫入新行來成功完成它。然而,爲了閱讀它,我發現了一些麻煩。我這樣做:C - fscanf讀取兩個整數然後字符串
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);
我嘗試了幾種不同的方式,但他們從來沒有工作。我知道我可以像字符串一樣讀取字符串,但是如果字符串包含空格,我認爲這有問題。我想知道我做的方式是否最好,以及它有什麼問題。我發現這些方法中的一種(也沒有效果),你必須通過每行的最大長度。如有必要,我知道這些信息,這是我之前閱讀的maxCol。
Thnaks!這些都是我的兩個錯誤。現在它完美的工作! –