1
默認情況下 scanf 一讀入空格或者換行字符就結束讀入
[^\n]表示一讀入換行字符就結束讀入。這個是scanf的正則用法。
[^,\n]表示一讀入逗號或者換行字符就結束讀入。
[^,\n]讀出數據后,逗號或者換行字符還在緩沖區內,如果后期以讀取字符串的形式讀出數據,會直接跳過逗號或者換行字符;也可以用getchar讀出逗號或者換行符
2 那么如果scanf("%*[\n]")表示該輸入項讀入后不賦予任何變量,即scanf("%*[^\n]")表示跳過一行字符串。
scanf("%[^\n]%*c", str),其中%*c,表示讀取\n,但是不賦值給任何變量,相當於過濾了換行符