static void getcolors(void) /* get xyY colors from standard input */ { int gotwhite = 0; COLOR whiteclr; int n; float xyYin[3]; while (fgetval(stdin, 'i', &n) == 1) { /* read colors */ if ((n < 0) | (n > 24) || fgetval(stdin, 'f', &xyYin[0]) != 1 || fgetval(stdin, 'f', &xyYin[1]) != 1 || fgetval(stdin, 'f', &xyYin[2]) != 1 || (xyYin[0] < 0.) | (xyYin[1] < 0.) || xyYin[0] + xyYin[1] > 1.) { fprintf(stderr, "%s: bad color input data\n", progname); exit(1); } if (n == 0) { /* calibration white */ xyY2RGB(whiteclr, xyYin); gotwhite++; } else { /* standard color */ n--; xyY2RGB(inpRGB[n], xyYin); inpflags |= 1L<<n; } } /* normalize colors */ if (!gotwhite) { if (!(inpflags & 1L<<White)) { fprintf(stderr, "%s: missing input for White\n", progname); exit(1); } setcolor(whiteclr, colval(inpRGB[White],RED)/colval(mbRGB[White],RED), colval(inpRGB[White],GRN)/colval(mbRGB[White],GRN), colval(inpRGB[White],BLU)/colval(mbRGB[White],BLU)); } for (n = 0; n < 24; n++) if (inpflags & 1L<<n) setcolor(inpRGB[n], colval(inpRGB[n],RED)/colval(whiteclr,RED), colval(inpRGB[n],GRN)/colval(whiteclr,GRN), colval(inpRGB[n],BLU)/colval(whiteclr,BLU)); }
int load(char * fname, double * dados, int nrow, int ncol) { // Carrega os dados do arquivo "fname" na matriz "dados", de dimensão "nrow" x "ncol" char * pchar, buf [bufsize]; FILE * fp = fopen (fname, "r"); if (fp == NULL) { printf("Não conseguiu ler o arquivo %s. \n", fname); return 1; } fgets(buf,bufsize,fp); fgets(buf,bufsize,fp); for (int i = 0; i < nrow; ++ i) { fgets(buf,bufsize,fp); for (int k = 0; k < ncol; ++ k) { * dados = fgetval(buf); dados ++ ; } } fclose(fp); return 0; }