• 締切済み

浮動小数点数が表示されないんです…。。。

研究でC言語を使わないといけないんですが、簡単な小数点の表示すらうまくできないんです。誰か助けてください。プログラムの内容はinput.gridというファイルから各変数の値をfscanf関数で読み込み、画面に表示するというごく単純なものでコンパイル、リンクはうまくいくのですが、実行のときにfloating point not loadedと画面に表示され途中で処理が終わってしまいます。同じような経験されたかたいらっしゃいますか?なんとかならないでしょうか??下にプログラムと入力データを記述しておきます。 ・プログラム #include<stdio.h> #include<stdlib.h> main() { int *type; int *t; int *n; double *x; double *y; double *z; double *u; double *v; double *w; double *p; double *rho; FILE *fp_grid,*fp_press ; /*ファイルポインター*/ if((fp_grid=fopen("input.grid","r"))==0){ printf("file not open \n"); exit(1);} if((fp_press=fopen("input.press","w"))==0){ printf("file not open \n"); exit(1);} fscanf(fp_grid,"%d",&t); fscanf(fp_grid,"%d",&n); fscanf(fp_grid,"%f %f %f %f %f %f %f %f",&type,&x,&y,&z,&u,&v,&w,&p,&rho); printf("check\nt=%d,n=%d\n",t,n); printf("%d %f %f %f %f %f %f %f %f",type,x,y,z,u,v,w,p,rho); fclose(fp_grid); return; } 入力データinput.grid 0 21170 0 0.700000 -0.100000 -0.070000 0.000000 0.000000 -0.019927 0.000000 1000.000000

みんなの回答

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

まず int type; int t; int n; double x; double y; double z; double u; double v; double w; double p; double rho; にして下さい。(実体が必要) scanfの書式でdoubleを読み込む時にはlfにします。 %dが1つ足りません fscanf(fp_grid,"%d %lf %lf %lf %lf %lf %lf %lf %lf",&type,&x,&y,&z,&u,&v,&w,&p,&rho);

activa
質問者

お礼

ありがとうございます。できました。%lfとしたおかげかポインタの概念がよくわかってなかったのかわかりませんが、とりあえずできました。ありがとうございました。

回答No.2

試してみてないけど・・ fscanf(fp_grid,"%f %f %f %f %f %f %f %f",&type,&x,&y,&z,&u,&v,&w,&p,&rho); 頭の %d が1個足りナインでナイン? fscanf(fp_grid,"%d %f %f %f %f %f %f %f %f",&type,&x,&y,&z,&u,&v,&w,&p,&rho);

  • neKo_deux
  • ベストアンサー率44% (5541/12319)
回答No.1

Cで一番難しい所ですが、ポインタの使い方が間違っています。 もっと単純な、 画面からfloatのaの変数に値を入力 aの値を表示 という処理は書けますか?

関連するQ&A