2017-07-19 72 views
-2

我在這條線下面無法理解,有人可以告訴我它做了什麼嗎?在fscanf函數中格式化字符串混淆C

fscanf(file_pointer, "%*[^\n]"); 
+3

試試['scanf()manual'](https://linux.die.net/man/3/scanf)。它匹配除* newline之外的任何字符*,而'*'禁止轉換的賦值,所以字符只是「*跳過*」。 –

回答

1

docs一個可能會看到,那:

* - 這不是用來分配賦值抑制字符被讀取到的fscanf任何receiveing說法。

[^\n] - 與除(^)新行(\n)之外的任何符號相匹配的轉換說明符。

因此,此fscanf會讀取所有符號,直到符合新行。

+0

「*如果它不是新行,或者如果它是一個新行,就會忽略它。*」 - 呃,它讀取所有內容直到換行符並忽略所有讀取的內容。 –

+0

@FelixPalmen正好,現在修復。 –