dポイントプレゼントキャンペーン実施中!

研究で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

A 回答 (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);
    • good
    • 1
この回答へのお礼

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

お礼日時:2005/06/21 12:40

試してみてないけど・・



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);
    • good
    • 0

Cで一番難しい所ですが、ポインタの使い方が間違っています。



もっと単純な、
画面からfloatのaの変数に値を入力
aの値を表示
という処理は書けますか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!