简体   繁体   English

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

[英]How to write an array to file in C

I have a 2 dimensional matrix: 我有一个二维矩阵:

char clientdata[12][128];

What is the best way to write the contents to a file? 将内容写入文件的最佳方法是什么? I need to constantly update this text file so on every write the previous data in the file is cleared. 我需要不断更新此文本文件,以便在每次写入时清除文件中的先前数据。

Since the size of the data is fixed, one simple way of writing this entire array into a file is using the binary writing mode: 由于数据的大小是固定的,将整个数组写入文件的一种简单方法是使用二进制写入模式:

FILE *f = fopen("client.data", "wb");
fwrite(clientdata, sizeof(char), sizeof(clientdata), f);
fclose(f);

This writes out the whole 2D array at once, writing over the content of the file that has been there previously. 这会立即写出整个2D数组,写入之前存在的文件内容。

I would rather add a test to make it robust ! 我宁愿添加一个测试来使其健壮! The fclose() is done in either cases otherwise the file system will free the file descriptor fclose()在任何一种情况下都会完成,否则文件系统将释放文件描述符

int written = 0;
FILE *f = fopen("client.data", "wb");
written = fwrite(clientdata, sizeof(char), sizeof(clientdata), f);
if (written == 0) {
    printf("Error during writing to file !");
}
fclose(f);

How incredibly simple this issue turned out to be... The example given above handle characters, this is how to handle an array of integers... 这个问题变得异常简单......上面给出的例子处理字符,这是如何处理整数数组的...

/* define array, counter, and file name, and open the file */
int unsigned n, prime[1000000];
FILE *fp;
fp=fopen("/Users/Robert/Prime/Data100","w");
prime[0] = 1;  /* fist prime is One, a given, so set it */
/* do Prime calculation here and store each new prime found in the array */
prime[pn] = n; 
/* when search for primes is complete write the entire array to file */
fwrite(prime,sizeof(prime),1,fp); /* Write to File */

/* To verify data has been properly written to file... */
fread(prime,sizeof(prime),1,fp); /* read the entire file into the array */
printf("Prime extracted from file Data100: %10d \n",prime[78485]); /* verify data written */
/* in this example, the 78,485th prime found, value 999,773. */

For anyone else looking for guidance on C programming, this site is excellent... 对于其他寻求C编程指导的人来说,这个网站非常棒......

Refer: [ https://overiq.com/c-programming/101/fwrite-function-in-c/ 参考:[ https://overiq.com/c-programming/101/fwrite-function-in-c/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM