无论内容如何,​​都要写入给定数量字节的字符串

时间:2014-03-27 03:02:51

标签: c binary fwrite

我试图为一个文件写一个标题,但这将由另一个寻找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);

并在剩余字节后用空格填充空格,但这些空格会在程序中稍后导致问题 感谢您的建议

1 个答案:

答案 0 :(得分:0)

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

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

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

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