以下で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で質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- C言語・C++・C# 10個の実数に対する降順ソート結果を出力するプログラムを作りたいのですが、以下のプログラムをどう直せ 1 2022/07/09 22:16
- C言語・C++・C# C言語(構造体) 3 2022/07/05 20:08
- C言語・C++・C# c言語でユーザ関数を利用して複素数のべき乗と絶対値の数列を計算するプログラムが作りたいです。 3 2023/01/29 22:13
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- C言語・C++・C# プログラミングの授業の課題です 1 2023/01/17 22:15
- C言語・C++・C# LU分解法のピボット選択機能実装について(C言語・gcc-9) 1 2022/07/22 15:20
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
マクロ 特定のセル値のみクリ...
-
C言語 1から20までの逆数の和を...
-
値を返さないコード パス
-
DataTableに対するLINQについて
-
DataGridView1のcellで計算
-
VB.NETでコンボボックスの1行目...
-
MATLABの極値を順に求める
-
VB.NET 自作プロパティが変更さ...
-
C# get set
-
VBA ドロップダウンリストを残...
-
変数名の取得
-
Excel VBAのリストボックスの値...
-
Powershellのparamについて
-
windowsアプリケーションで小数...
-
代入したのに値が更新されない...
-
0から12までの値nを入力し、n...
-
フォーム間での変数の受け渡し
-
【C++/CLI.NET】コンボボックス...
-
VB.NETでアクティブなformを知...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
テキストボックスのvalueとtext...
-
マクロ 特定のセル値のみクリ...
-
VB.NETでコンボボックスの1行目...
-
変数名の取得
-
値を返さないコード パス
-
Excel VBAのリストボックスの値...
-
VB初心者。小数点以下の表示で...
-
ハッシュテーブル(連想配列)が...
-
textboxとLabelを動的に変更する
-
PL/SQLでのTO_DATEの時間取得に...
-
VB.NETでアクティブなformを知...
-
Excel vba ユーザーフォームテ...
-
DataTableに対するLINQについて
-
マクロで奇数と偶数の値を2か所...
-
【C++/CLI.NET】コンボボックス...
-
[VBA]選択範囲の下から上に処理...
-
変数に代入してある数値を表示...
-
vbscriptを使いexcelを参照して...
-
範囲が指定されている乱数について
-
[VB.net] DataGridViewのコンボ...
おすすめ情報
再起動して再度試しましたが、変わらず
0 -3.91985E+83
と出ました。
環境の違いでしょうか?
メモ帳でもだめでした。
実行するたびに値が変わります。
tatsumaru77様
お寄せいただいたコードで実行しましたができませんでした。