2012-03-25 11 views
0

私は一線(文字列)から入力を読み込んで配列に整理するプログラムを持っています。シンプルC:間違った値を与えた場合

問題は、ある時点では2つの異なる値が読み込まれ、最初の値が2回返されるということです。当初プログラムは同じ値を2回読み込んでいたと思っていましたが、テストしたところ、間違った値を入力していましたが、間違った値を入力していました。例えば

入力:2 0.90 0.75 0.7 0.65

(while(fgets (string[test], sizeof(string[test]),ifp)) 
pch = strtok_r(NULL, " ", &prog); 
tem3 = atoi(pch); 
while (loop<tem3) 
{ 
    pch=strtok_r(NULL," ",&prog); 
    venseatfloat[test][loop][DISCOUNT][OCCUPIED]=(float)atof(pch); 
    printf("%f is discount\t",venseatfloat[test][loop][DISCOUNT][OCCUPIED]); 

    pch=strtok_r(NULL, " ", &prog); 
    strcpy(temp, pch); 
    venseatfloat[test][loop][REGULAR][OCCUPIED]=(float)atof(pch); 
    printf("%s is the string but %.3f is regular\n", temp ,venseatfloat[test][loop][DISCOUNT][OCCUPIED]); 
    loop++; 

} 

出力にそれを切り取るために申し訳ありません

:何が起こっているか

>0.900000 is discount 0.75 is the string but 0.900 is regular 

>0.700000 is discount 0.65 is the string but 0.700 is regular 

を?

答えて

2

2回目の読書では、venseatfloat [test] [loop] [REGULAR] [OCCUPIED]を読んでいますが、venseatfloat [test] [loop] [割引] [OCCUPIED]を印刷しています。 (REGULARとDISCOUNTをメモしてください)

+0

lol <本当に意味する!> – Chani

+0

うわー。私は馬鹿だ。あなたの時間から盗んですみませます。 私は今、壁の上で私の頭を叩く必要があります。 –

+1

@Doc、それが実際に解決策であれば、答えを受け入れる必要があります。 –

関連する問題