試圖學習C語言基礎知識。我正在向一個文件寫入一個數組。我成功地將數據寫入文件並將其讀回。然而,數據以二進制形式寫入文件,這是不可讀的。 我們怎樣才能將數據寫入文件,以便它可以以人類可讀的格式存儲。將數組寫入C中的文件,文件應該是可讀的格式
#include<stdio.h>
typedef struct array
{
int n;
int arr[100];
} array_t;
void print_array(array_t e)
{
printf("%s\n", __FUNCTION__);
int i = 0;
for(i = 0; i < e.n; i++)
printf("%d\n", e.arr[i]);
}
int main()
{
FILE *f1;
array_t e, f;
int i;
printf("Enter Array Size:\n");
scanf("%d",&e.n);
for(i = 0; i < e.n; i++)
{
int temp;
printf("Enter %dth element\n", i+1);
scanf("%d",&temp);
e.arr[i] = temp;
}
print_array(e);
f1 = fopen("one.txt", "wb+");
int ret = fwrite(e.arr, sizeof(int), e.n, f1);
fclose(f1);
f1 = fopen("one.txt", "rb");
f.n = e.n;
for(i = 0; i < e.n; i++) {
int temp = 0;
fread(&temp, sizeof(int), 1, f1);
f.arr[i] = temp;
}
printf("This is read array\n");
print_array(f);
return 0;
}
整型轉換爲字符串,這些操作和寫入字符串。 – trojanfoe
您需要一個不是數組值域的一部分的分隔符號。 – jboockmann
我相信fwrite應該有你所抱怨的行爲。看看fprintf,它可能是你正在尋找的。 (http://www.cplusplus.com/reference/cstdio/fprintf/) –