我希望创建一个表示整数的二进制文件。我认为这个文件应该是4字节。我使用的是Linux系统。如何实现呢? 另一个问题:如何在C语言中将文件的内容赋值给一个整数变量?
我希望创建一个表示整数的二进制文件。我认为这个文件应该是4字节。我使用的是Linux系统。如何实现呢? 另一个问题:如何在C语言中将文件的内容赋值给一个整数变量?
在标准C中,fopen()
函数允许使用模式"wb"
进行二进制写入(以及"rb"
进行读取)。因此:
#include <stdio.h>
int main() {
/* Create the file */
int x = 1;
FILE *fh = fopen ("file.bin", "wb");
if (fh != NULL) {
fwrite (&x, sizeof (x), 1, fh);
fclose (fh);
}
/* Read the file back in */
x = 7;
fh = fopen ("file.bin", "rb");
if (fh != NULL) {
fread (&x, sizeof (x), 1, fh);
fclose (fh);
}
/* Check that it worked */
printf ("Value is: %d\n", x);
return 0;
}
这将输出:
Value is: 1
从操作系统的角度来看,所有文件都是二进制文件。C(和C ++)提供了一个特殊的“文本模式”,可以执行一些操作,例如将换行符扩展为换行符/回车对(在Windows上),但操作系统不知道这一点。
在C程序中,要创建没有这种特殊处理的文件,请使用fopen()的“b”标志:
FILE * f = fopen("somefile", "wb" );
请参考 man
手册,了解系统调用 open
、write
和 read
。
float
,请使用此链接:https://dev59.com/oFLTa4cB1Zd3GeqPc7mb#4465303 - gabor aron