Если я правильно понял ваш вопрос, вы хотите знать, как дополнить строку 30 байтами, чтобы она маскировала все поле.
Один из способов сделать это может быть:
#include <vector>
#include <string>
...
std::string s("Example Song 2"); //string of title
std::vector<char> v(s.begin(), s.end()); //output initialized to string s
v.resize(30,'\0'); //pad to 30 with '\0'
fwrite(&v[0],30,1,file);
Обратите внимание, что у этого метода есть большой плюс, что если заголовок больше 30 символов, то изменение размера усекает его, уменьшая вероятность переполнения
Обратите внимание, если вам нужно быть уверенным, что буфер завершен нулем, тогдаВы можете сделать это:
v.back()='\0';