If(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1) 是啥意思?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了If(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1) 是啥意思?相关的知识,希望对你有一定的参考价值。

If(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1)
if(feof(fp)fclose(fp);return;
prient("file read error\n");
如何理解?

(1)参数&stud[i] :是一个指针,对fwrite来说,是要获取数据的地址。
(2)参数sizeof(struct strdent_type) :要写入内容的单字节数;
(3)参数1 :要进行写入sizeof(struct strdent_type)字节的数据项的个数是1,;
(4)参数fp:目标文件指针。
(5)返回值是实际写入目标文件中的数据项个数。

“fwrite(&stud[i],sizeof(struct student_type),1,fp)” 就是从stud[i]中获取一个(struct student_type)类型的数据写入到目标文件fp中并返回值。若返回值为1,则执行成功。
这样那if语句的意思就是 若fwite函数返回值 非1(即向目标文件写入失败),就执行if下的语句!
参考技术A fwrite 返回值为实际写入文件的字节数,如果返回值与预期写入的字节数不一致,说明写操作没有完成或出错。
If(fwrite(...)!=1) 就是判断写入文件的字节数若不是1,则执行if逻辑
参考技术B 应该是stdu[i]指针指向的内容输出到fp这个文件中

PAT(未完成)

#include<stdio.h>
int FiveZ(int a[])
{
int sum=0;
int b = sizeof(a)/sizeof(a[0]);
for(int i=0;i<b;i++)
{
if(a[i]%5==0){
if(a[i]%2==0){
sum+=a[i];
}
}
}
return sum;
}
int main(){
int N;
scanf("%d",&N);
int a[1000];
for(int i=0;i<N;i++){
scanf("%d",&a[i]);
}
int sum1 = 0;//第一个功能
for(int i=0;i<N;i++)
{
if(a[i]%5==0){
if(a[i]%2==0){
sum1+=a[i];
}
}
}
// printf("%d\n",sum1);//第一个输出
int b[N];

}

以上是关于If(fwrite(&stud[i],sizeof(struct student_type),1,fp)!=1) 是啥意思?的主要内容,如果未能解决你的问题,请参考以下文章

fwrite(&stud[i],sizeof(student_type),1,fp)!=1

fwrite(&st[i],sizeof(struct staff),1,fp)!=1啥意思

C语言fwrite 结构体换行问题(初学C语言)

c语言文件操作fwrite和fread

56.fread fwrite

求大神,关于c语言删除函数