0

そのため、ここでベクトル計算機にさらに問題があり、ベクトルに追加する浮動小数点値を取得する方法が完全にはわかりません。アペンド機能は作ってちゃんと動くのですが、「ベクトルに0を入れたい場合はどうするの?」というのが唯一の問題です。

現在、フロートが 0 かどうかを確認するためにチェックを使用していますが、無効なオペランドが分割されるため、明らかに機能しません。浮動小数点値が入力されていないか、数値ではないかどうかを確認できる方法はありますか? これまでのところ、私が問題を抱えている部分の断片は次のとおりです。

//Vector that is intialized
Vector * myVector = alloc_vec();
//character for the options
char optionSelect[100];
//character that picks out the selection.
char select;
//A float for the operations that require an option.
float myScales = 0;

printf("Please enter a selection: ");
fgets(optionSelect, 100, stdin);
sscanf(optionSelect, "\n%c%f", &select,&myScales);

...

else if(select == 'a')
{
    if(myScales != 0)
        {
            myVector = extend_vec(myVector, myScales);
        }
        else
        {
            printf("No operand specified.\n");
        }
}

-inf から inf までの任意の float 値を確実に追加できるようにするにはどうすればよいですか?ただし、「a」が選択された直後に文字や入力がないなどの無効なものはありますか?

4

1 に答える 1

0

myScales を 0.0/0.0 に設定して NaN (おそらく?) の数値を取得し、myScales == myScales に続いて残りをチェックし、myScales を 0.0/0.0 に戻すと、うまくいくはずです!

于 2013-11-09T21:32:27.390 に答える