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/) –