#include #include #include /* gcc -o bin2mat -Wall -O3 bin2mat.c */ int main(int argc, char* argv[]) { char *fin, *fout; FILE *fpin, *fpout; int nrow, ncol, chk, c, r; int *x; if (argc == 1) { fprintf(stderr, "usage: %s foo.bin foo.txt\n", argv[0]); exit(-1); } fin = argv[1]; fout = argv[2]; fpin = fopen(fin,"r"); assert(fpin); assert(fread(&nrow, sizeof(int),1,fpin)); assert(nrow>0); assert(fread(&ncol, sizeof(int),1,fpin)); assert(ncol>0); x = (int*)calloc(ncol,sizeof(int)); assert(x); fpout = fopen(fout,"w"); assert(fpout); fprintf(fpout,"%d\n",nrow); fprintf(fpout,"%d\n",ncol); for (r = 0; r < nrow; r++) { chk = fread(x,sizeof(int),ncol,fpin); assert(chk==ncol); for (c = 0; c < ncol; c++) fprintf(fpout,"%d\n", x[c]); } fclose(fpin); fclose(fpout); return 0; }