
以下でprintfで表示したときには0,1と正しい値が出るのに、
fprintfでファイルに入れ、エクセルで起こすと変な値が出ました。何が原因でしょうか?
int main(){
double x[2]={0};
x[0] = 1;
FILE *f;
f = fopen("example.txt", "w");
fprintf(f, "%lf %lf", 0, x[0]);
fclose(f);
printf("%lf", x[0]);
system("pause");
return 0;
}
No.8
- 回答日時:
#7 が正解. 値に対して書式が不適切なので「書いてある通り」に処理した結果あなたの目論見とは違うことになっている.
なおこれは「未定義動作」なので, 規格上何がどうなっても文句は言えない.
No.5
- 回答日時:
一か所見落としていました。
double x[2] = { 0,0 };
にしてください。
double x[2] = { 0 };
だと、x[0]のみ0に設定されます。
No.4
- 回答日時:
気になる個所を修正しました。
下記でどうなりますか。
#include <stdio.h>
#include <stdlib.h>
int main()
{
double x[2] = { 0 };
x[0] = 1;
FILE *f;
f = fopen("example.txt", "w");
fprintf(f, "%f %f\n", 0, x[0]);
fclose(f);
printf("%f\n", x[0]);
system("pause");
return 0;
}
No.3
- 回答日時:
Excelは数値を15桁までしか扱えません。
その桁数を超えた数値で出力されているのだろうと予測してみます。
試しに「数値」ではなく、「文字列」として読み込んでみてください。
テキストファイルウィザードで、対象のフィールドを文字列にすることで
Excelがテキストを勝手に「数値」として読み取ってしまう事を防止できます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
値を返さないコード パス
-
チェックした値を取得したい(C...
-
Powershellのparamについて
-
マクロ 特定のセル値のみクリ...
-
PL/SQLでのTO_DATEの時間取得に...
-
VB初心者。小数点以下の表示で...
-
先ほどの質問の続きなのですが...
-
ASP.NET ドロップダウンリスト...
-
C#の質問です
-
ExcelでGaussian fittingをした...
-
シーケンサで最小値を保持する
-
フォーム間での変数の受け渡し
-
marginとpaddingにマイナス
-
コンボボックスのSelectedItem...
-
DBのデータをjavascript側で利...
-
ダイアログへ文字列を表示させ...
-
パスワードの再入力処理
-
【ASP.NET】 DataTextFieldの値...
-
VBScriptで別フレームのセレク...
-
VB.NETで DataRow()を利用して...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
値を返さないコード パス
-
VB.NETでコンボボックスの1行目...
-
VBA ドロップダウンリストを残...
-
C#の質問です
-
vb6のVSFlexGridで選択行、列の...
-
VB.NETでアクティブなformを知...
-
Excel VBAのリストボックスの値...
-
VB.NETのスクロールバーコント...
-
PL/SQLでのTO_DATEの時間取得に...
-
ユーザーフォームのテキストボ...
-
VBA(自然数)
-
マクロ 特定のセル値のみクリ...
-
マクロで奇数と偶数の値を2か所...
-
ACCESS VBA 画像ファ...
-
変数に代入してある数値を表示...
-
【ASP.NET】 DataTextFieldの値...
-
チェックした値を取得したい(C...
-
変数名の取得
-
windowsアプリケーションで小数...
おすすめ情報
再起動して再度試しましたが、変わらず
0 -3.91985E+83
と出ました。
環境の違いでしょうか?
メモ帳でもだめでした。
実行するたびに値が変わります。
tatsumaru77様
お寄せいただいたコードで実行しましたができませんでした。