如何才能每次读入恰好32位的数据块呢?其次,如何将其存储以便稍后操作?
这是我目前的情况,但检查我之前读取的二进制数据块,它看起来不正确,我认为我没有按照需要精确地读取32位数据块。
char buffer[4] = { 0 }; // initialize to 0
unsigned long c = 0;
int bytesize = 4; // read in 32 bits
while (fgets(buffer, bytesize, stdin)) {
memcpy(&c, buffer, bytesize); // copy the data to a more usable structure for bit manipulation later
// more stuff
buffer[0] = 0; buffer[1] = 0; buffer[2] = 0; buffer[3] = 0; // set to zero before next loop
}
fclose(stdin);
我该如何每次读取32位(它们全部都是1/0,没有换行等),并将其存储在什么变量中?char[]
可以吗?
编辑:我能够读取二进制数据,但是所有的答案产生的位顺序都不正确——它们都混乱了。我怀疑这涉及到字节序以及一次只能读取和移动8位(即1个字符),这需要在Windows和C上工作…?