C FGET中(文件*)fp和fp之间的差异?
我一直在寻找一些用C语言读取文件的例子,我看到了这两个例子C FGET中(文件*)fp和fp之间的差异?,c,C,我一直在寻找一些用C语言读取文件的例子,我看到了这两个例子 fgets(buff,255,(FILE*)fp); 及 假设fp是前面定义的文件指针“file*fp;” 这有什么区别吗?或者编译器只是将一个转换成另一个 我还注意到在一些读取整个文件的“While”循环中,有些循环说While(fgets(buff,255,fp))(假设whiles为真),有些循环会专门检查While(fgets(buff,255,fp)!=NULL) “真正”的人不应该失败吗?因为如果成功它会返回buff,如果
fgets(buff,255,(FILE*)fp);
及
假设fp是前面定义的文件指针“file*fp;
”
这有什么区别吗?或者编译器只是将一个转换成另一个
我还注意到在一些读取整个文件的“While”循环中,有些循环说While(fgets(buff,255,fp))(假设whiles为真),有些循环会专门检查While(fgets(buff,255,fp)!=NULL)
“真正”的人不应该失败吗?因为如果成功它会返回buff,如果失败它会返回null
谢谢在条件语句中,非空指针被视为true。所以,
while(fgets(buff,255,fp))
相当于
while(fgets(buff,255,fp)!=NULL)
另外,(文件*)fp
也是一个类型转换。因为fp
已经声明为FILE*fp代码>强制转换无效
while(fgets(buff,255,fp)!=NULL)