0

char[] を float 変数に再帰的に変換する必要があります。私のコードは次のとおりです。

while(1)
{
    //take char[] str as input
    sscanf(str,"%f",&n);
    //printf n
}

プログラムは正の数に対してうまく機能します。しかし、最初に負の数を与え、その後に正の数を与えると、n は異なる出力を表示します。

4

1 に答える 1

1

Cで書かれた、これは私にとってはうまくいくようです。

char* str = "-9 1.1 2 3.1 0.9 .8 -2 -1.1";
float n;
int offset;
while (sscanf(str, "%f%n", &n, &offset) > 0) {
  printf("%f,", n);
  str += offset;
}

出力で-9.000000,1.100000,2.000000,3.100000,0.900000,0.800000,-2.000000,-1.100000,

于 2013-10-03T13:44:41.023 に答える