C、 固定宽度字符

C、 固定宽度字符,c,binary,char,C,Binary,Char,我正在将chars读/写到二进制文件中。执行读/写操作的程序可以在32位或64位机器上运行。此外,文件可以在32位环境中写入,然后在64位环境中读取,反之亦然 因此,我需要某种存储chars的方法,以保证一定的宽度(越小越好)。我相信有一种公认的/通用的方法可以做到这一点,但作为一个C新手,我不知道这一点,也无法通过谷歌找到任何东西 有人知道这个把戏吗 在任何“正常”现代体系结构上chars始终为8位,而与64/32位问题无关。当您直接将int或其他类型的二进制表示形式(大小和字节顺序可能因体系

我正在将
char
s读/写到二进制文件中。执行读/写操作的程序可以在32位或64位机器上运行。此外,文件可以在32位环境中写入,然后在64位环境中读取,反之亦然

因此,我需要某种存储
char
s的方法,以保证一定的宽度(越小越好)。我相信有一种公认的/通用的方法可以做到这一点,但作为一个C新手,我不知道这一点,也无法通过谷歌找到任何东西

有人知道这个把戏吗

在任何“正常”现代体系结构上
char
s始终为8位,而与64/32位问题无关。当您直接将
int
或其他类型的二进制表示形式(大小和字节顺序可能因体系结构而异)转储到文件中时,会出现这种情况,但纯
char
s应该是安全的

。。。显然,如果您正在编写文本,您应该选择一些编码,但这是一个完全不同的故事…

在任何“正常”现代体系结构上
char
s始终是8位的,而不管64/32位的问题如何。当您直接将
int
或其他类型的二进制表示形式(大小和字节顺序可能因体系结构而异)转储到文件中时,会出现这种情况,但纯
char
s应该是安全的


。。。显然,如果你在写文本,你应该选择一些编码,但那是完全不同的情况…

我实际上只是在写URL,它将只被生成数据的程序读取,或者在另一台机器上读取它的副本。(这也不是一个大的产品)所以我认为放弃任何编码是可以接受的。这是一个可以接受的情况,还是我应该一直进行编码?只要您知道C库使用的默认编码在两端都是相同的,您应该可以。。。此外,URL不像“通用”文本那样有问题,因为麻烦的字符应该已经转义了。我实际上只是在写URL,它只能由生成数据的程序读取,或者在另一台机器上读取。(这也不是一个大的产品)所以我认为放弃任何编码是可以接受的。这是一个可以接受的情况,还是我应该一直进行编码?只要您知道C库使用的默认编码在两端都是相同的,您应该可以。。。此外,URL不像“通用”文本那样有问题,因为麻烦的字符应该已经转义了。