編集: 数字の出力配列 ((char)0 から char(9))。
#include <sys/stat.h>
#include <stdlib.h>
#include <stdio.h>
char* read_file_into_array(char* filename, size_t *array_size)
{
char *array;
struct stat st;
FILE *f;
size_t i;
if (stat(filename, &st) != 0) {
printf("Error reading %s\n", filename);
return NULL;
}
array = malloc(st.st_size+1);
if (!array) {
printf("Error allocating memory\n");
return NULL;
}
f = fopen(filename, "rb");
if (!f) {
printf("Error opening file\n");
return NULL;
}
if (fread(array, 1, st.st_size, f) != st.st_size) {
printf("Error reading file\n");
return NULL;
}
fclose(f);
/* Put numeric value into each field */
for(i=0; i<st.st_size; i++)
if (array[i] >= '0' && array[i] <= '9')
array[i] = array[i]-'0';
else /* end of digits */
break;
/* Provide size to caller */
*array_size = i;
return array;
}