#include "safe_stdio.h" #include "safe_string.h" #include #include int main( int argc, char *argv[] ) { int ret_status = -1; FILE *fp = NULL; if ( 1 < argc ) { const char *file = argv[1]; const size_t max_elem = 32; size_t begin[max_elem]; size_t length[max_elem]; char buf[512]; ssize_t n; /* ファイルをオープン */ fp = fopen(file, "r"); if ( fp == NULL ) { fprintf(stderr,"[ERROR] cannot open: %s\n",file); goto quit; } /* 1行ずつスキャン */ while ( 0 <= (n=fscan_str(fp,buf,512," ",begin,length,max_elem)) ) { if ( n == 3 ) { const size_t size_el = 512; char el[size_el]; double ra, dec; safe_strncpy(el,size_el, buf + begin[0], length[0]); printf("%s ",el); safe_strncpy(el,size_el, buf + begin[1], length[1]); ra = M_PI * atof(el) / 180.0; safe_strncpy(el,size_el, buf + begin[2], length[2]); dec = M_PI * atof(el) / 180.0; printf("%g %g %g\n", cos(ra)*cos(dec), sin(ra)*cos(dec), sin(dec)); } } } ret_status = 0; quit: if ( fp != NULL ) fclose(fp); return ret_status; }