由于您没有从流中读取,因此它似乎更灵活。
两者都提到,因为您可以轻松更改读取的时间/代码位置,然后您可以使用c流(我错了,你可以创建字符串,等同于c FILE *
流)?
另外,我不知道我对scanf
感到有点奇怪。 scanf
的任何利弊都将受到赞赏。
编辑:我的意思是使用scanf或fscanf与fgets + sscanf的组合
答案 0 :(得分:2)
C FAQ中已经解决了这个问题。
为什么每个人都说不使用 SCANF?我该怎么用?
如果您正在阅读受信任文件(不是stdin
),那么使用fgets + sscanf
代替fscanf
是没有意义的。确实使用scanf
(从stdin
读取)是有问题的。
答案 1 :(得分:1)
如果您期待integer
但是您读了floating point
或其他一些不兼容的类型,则可以检查scanf
的返回值。如果它返回零,那么你没有读integer
- 但是fgets
你不能这样做。此外,通过检查scanf
的返回值,您可以看到读取的项目数。