【发布时间】:2014-12-10 07:17:19
【问题描述】:
您好,我正在尝试将结构写入文件。 下面是代码。
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
/*structure*/
struct student
{
char name[10];
char space[1];
char rollno[5];
}head_rec;
/*main*/
void main()
{
FILE *fout;
if(fout=fopen("output.txt","w")==NULL)
{
printf("Cannot open the file to write");
exit;
}
memset(&head_rec,'\0',sizeof(struct student);
sprint(head_rec.name,"SOUMYA",6);
memset(head_rec.space,' ',1);
memset(head_rec.rollno,'\0',sizeof(head_rec.rollno);
sprint(head_rec.rollno,"0000",4);
head_rec.rollno[4]='\0';
fwrite(&head_rec,sizeof(struct student),1,fout);
}
输出:
苏米亚0000^@
如何去掉最后一个字符?
【问题讨论】:
-
另外,对于人类可读的输出,最好使用
fprintf()而不是fwrite()。 -
我想写整个结构,而不是单个成员。 fprintf 可以吗?
-
在此之前,请告诉我们,这是什么
if(fout=fopen("output.txt","w"))?你知道你在做什么吗? -
您的代码无法编译。请向我们展示实际代码。
-
@Sourav fopen 没有返回值吗?该值将用于评估“如果”
标签: c file structure fwrite garbage