[英]Is there any reason to use scanf or fscanf over fgets+sscanf
由於您不是從流中讀取內容,因此似乎更加靈活。 兩者都提到,由於您可以輕松更改讀取的時間/代碼位置,因此可以使用ac流(我錯了,可以將字符串做成ect FILE *
流)嗎?
另外,我不知道我對scanf
有點奇怪。 任何有利/不利於scanf
。
編輯:我的意思是使用scanf或fscanf與fgets + sscanf的組合
這在C FAQ中已得到很好的解決。
為什么每個人都說不使用scanf? 我應該怎么用呢?
如果您正在讀取受信任的文件(不是stdin
),那么使用fgets + sscanf
代替fscanf
是沒有意義的。 確實,使用scanf
(從stdin
讀取)是有問題的。
如果期望integer
但讀取floating point
或其他不兼容的類型,則可以檢查scanf
的返回值。 如果返回零,則您沒有讀取integer
-但是使用fgets
則無法做到這一點。 另外,通過檢查scanf
的返回值,您可以看到讀取的項目數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.