如何用C语言将数组写入文件

mug*_*tsu 11 c io

我有一个二维矩阵:

char clientdata[12][128];
Run Code Online (Sandbox Code Playgroud)

将内容写入文件的最佳方法是什么?我需要不断更新此文本文件,以便在每次写入时清除文件中的先前数据.

das*_*ght 30

由于数据的大小是固定的,将整个数组写入文件的一种简单方法是使用二进制写入模式:

FILE *f = fopen("client.data", "wb");
fwrite(clientdata, sizeof(char), sizeof(clientdata), f);
fclose(f);
Run Code Online (Sandbox Code Playgroud)

这会立即写出整个2D数组,写入之前存在的文件内容.

  • 这适用于各种机器类型,因为数据是字符数据.如果它是`int`,那么数据将无法在big-endian和little-endian机器之间移植. (5认同)
  • 你使用`FILE*ifp = fopen("client.data","rb"); fread(clientdata,sizeof(char),sizeof(clientdata),ifp);`并添加错误检查. (4认同)