【发布时间】:2012-10-04 08:58:57
【问题描述】:
标准 C 中的文件输入函数,如 fgetc()、fgets() 或 fscanf(),是否对 NUL ('\0') 字符有任何问题,或者将它们与其他字符区别对待?
我想问我是否可以使用 fgets() 来读取可能包含 NUL 字符的行,但我刚刚意识到,由于该函数 NUL 终止输入并且不会以任何其他方式返回长度,无论如何,它对这种用途毫无价值。
我可以使用 fgetc()/getc()/getchar() 代替吗?
【问题讨论】:
-
读取包含 NUL 字符的 text 文件会调用 GIGO。垃圾进,垃圾出。
-
请注意,字符的返回类型 (
int) 的范围比可返回的值(一个字节)更大。这是有原因的......
标签: c