我正在尝试为文件写标题,但是将由另一个正在寻找80字节的程序读取。如何写一个大小为80字节的字符串,其中可能包含少量字符(例如“ box”)?

我尝试过的

const char* title;
GetAttribute(model,"title of attar",&title);  //args 2 & 3 must be char *, char **
char newtitle[80];
strcopy(newtitle,title);

fwrite(newtitle,sizeof(char),80,fp);


我也尝试只写标题...

fwrite(newtitle,sizeof(char),strlen(title),fp);


并在剩余字节之后用空格填充,但是这些空格会在以后的程序中引起问题
谢谢你的建议

最佳答案

您可能想用0个字节填充它。在将字符串复制到新标题缓冲区之前,将其填充为零,然后将该缓冲区写入文件:

char newtitle[80];
memset(newtitle, '\0', 80);
strncpy(newtitle, title, 80);

fwrite(newtitle, sizeof(char), 80, fp);


您可以将想要的任何ASCII字符传递到memset()中,以进行填充。但是对于二进制文件,通常会使用'\0'

09-20 10:24