![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
C言語を用いてgnuplotを操作しデータファイルから自動的にグラフを作成するプログラムを作ろうとしています。
使用環境はWindows7、VisualStudio2010です。
ほとんどの部分はうまくいったのですが一部分が正しく表示されません。
軸の目盛ラベルの表示フォーマット設定のコマンドで
set format x "%.1f"
として小数点以下一桁を強制的に表示させるためC言語でパイプを用いて
#define GNUPLOT_PATH "C:/gnuplot/binary/pgnuplot.exe"
int plot(char *file_name){
FILE *gp;
gp = _popen(GNUPLOT_PATH, "w");
fprintf(gp, "set title 'TEST PLOT'\n");
:
(中略)
:
fprintf(gp, "set format x '%.1f' \n");//この部分が正しく反映されません。
:
(中略)
:
fprintf(gp, "plot '%s' using 1:2 with linespoints lt 4 lw 5 pt 6 ps 2.0 lc rgb 'red'\n",file_name);
fprintf(gp,"quit \n");
fflush(gp);
_pclose(gp);
return 0;
}
'%.2f' の部分をいろいろいじってみたのですがうまくいかず、なぜできないのか原因がわかりません。
fprintf()の数値代入の %f と混ざってしまっているのでしょうか?
No.1ベストアンサー
- 回答日時:
fprintf の引数は(FILE*, フォーマット文字列,....) だと言うことをお忘れではないでしょうか?
%.1fはfprintfで解釈されて、dounle型を変換した文字列が出力されます。
そのdouble型の引数が無いんので、なにかその領域にあるものを無理矢理変換したか、領域違反でエラーになったか、です。
そのまま%を送りたいなら、次のようなものが常套手段でしょう。
fprintf(gp, "set format x '%%.1f' \n");
// %を二つ並べて、フォーマット変換を無効にする
fprintf(gp,"%s" "set format x '%.1f' \n");
// フォーマットに%sを指定して、文字列を与える
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- C言語・C++・C# const char** p;のとき、free(p)でC4090エラーとなるのはなぜですか 3 2023/03/31 16:28
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- Illustrator(イラストレーター) ワードに貼った画像のキャンバスと画像本体のサイズの調整 2 2022/05/19 18:31
- C言語・C++・C# プログラミングの問題です。至急教えてください。 /***から***/の部分をプログラミングにしてほし 1 2022/10/13 11:48
- C言語・C++・C# バイナリファイルをコピーするのにかかる時間を測りたいのですが実行するとFatel error:gli 2 2022/11/03 01:10
- その他(パソコン・周辺機器) RBG信号の2分岐についての質問です 3 2022/06/23 19:42
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- C言語・C++・C# Cのdoubleの浮動小数点表示について 3 2023/04/17 13:14
- 数学 特定の座標点を通る回帰を行う方法について。 2 2022/10/10 10:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
VB 6 を VS 2012に変換するには?
-
MATLABのMATファイル をC言語...
-
分を時間に変換するプログラム
-
MATLAB/simulinkでのD/A変換の仕方
-
Win32APIのFTPクライアントにつ...
-
10進数をBCDに変換する方法
-
C++からCへのソース変換について
-
BCBプロジェクトをVCに移植
-
COMP-3
-
VB.NETからJavaに変換するツー...
-
UTF8→ShiftJISに変換したいです!
-
vb.netの型変換について
-
cv::Matconst→CvArr* 変換
-
ユニコード文字の変換について
-
家電製品の電力周波数を変える機械
-
VC++2005で、CString型に16進...
-
VB6のAdressOfをVB.NETに変換し...
-
bitmapクラスをiconクラスに変...
-
中国語が文字コード変換で、一...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
緯度、経度の 10進法と 60進法...
-
Mac 乗数の入力方法
-
3のつく数字と3の倍数のみを表...
-
10進数をBCDに変換する方法
-
bmp→jpgに、jpg→bmpに
-
エクセルVBAの自動変換機能?
-
アセンブラ言語の数字を数値に...
-
なぜ通信には16進数文字列が使...
-
SJIS⇔UTF-8の文字コード...
-
C++からCへのソース変換について
-
分を時間に変換するプログラム
-
UTF8→ShiftJISに変換したいです!
-
家電製品の電力周波数を変える機械
-
マンセル⇔XYZ,RGB変換式或いは...
-
VB.NETをJavaに変換するツール...
-
画像ファイル変換(Tiff→PDF)
-
PHPで、日本語からアルファベッ...
-
魚眼レンズの画像処理
-
C#で漢字→ローマ字を変換
-
StrConvの使い方について教えて...
おすすめ情報