gpt4 book ai didi

c - fgets 中 (FILE*)fp 和 fp 的区别?

转载 作者:太空宇宙 更新时间:2023-11-04 01:51:43 25 4
gpt4 key购买 nike

我一直在查找一些用 C 语言读取文件的例子,我看到了这两个例子

fgets(buff,255,(FILE*)fp);

fgets(buff,255,fp);

假设 fp 是前面定义的文件指针 "FILE *fp;"

这有什么区别吗?还是编译器只是将一个转换为另一个?

我还注意到在一些读取整个文件的“While”循环中,有些人说 while(fgets(buff,255,fp))(所以假设 while 是真的)有些人会专门检查 while(fgets(buff,255 ,fp)!= NULL).

“真正的”不应该失败吗?因为如果成功则返回 buff,如果失败则返回 null?

谢谢

最佳答案

非空指针在条件语句中被视为真。因此,

while(fgets(buff,255,fp))

相当于

while(fgets(buff,255,fp)!=NULL)

此外,(FILE*)fp 是类型转换。由于 fp 已声明为 FILE *fp;,因此强制转换无效。

关于c - fgets 中 (FILE*)fp 和 fp 的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41928369/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com