私はsscanfと浮動小数点の解析に問題があります。問題は、テキストファイルから浮動小数点データをロードしようとしていますが、Linux上の異なるロケールで異常に動作します。 OSの小数点設定(、または。)に依存するようですが、ファイルのロード時には常に小数点です。C - sscanfのトラブル
ので、コードは次のようである:
sscanf(line[i],"%f %f %f %f %f",&floatbuffer[0],&floatbuffer[1], &floatbuffer[2], &floatbuffer[3], &floatbuffer[4]);
が、それはたとえばpl_PLため、小数点としてカンマ(、)を使用するロケールでは動作しません。どうすれば修正できますか?
#include <locale.h>
setlocale(LC_NUMERIC,"C");
はい、うまくいきません –
これは 'printf()'と 'sscanf()'の両方で動作することをテストして以来、別の問題に直面している可能性があります。たぶんロケール '' POSIX ''、またはインストールされている別のロケールを試してみてください(' locale -a'を実行してインストールされているロケールを確認してください) – mvds