C言語とgnuplotを利用して下記のプログラムを書きました。

#include<iostream>
#include<cstdio>
#include<stdio.h>
using namespace std;
#define GNUPLOT_PATH "C:/gnuplot/gnuplot/binary/gnuplot.exe"




int main()
{
FILE *gp;
char s[100];
scanf("%s", s);

gp = _popen(GNUPLOT_PATH, "w");
if (gp == NULL) {
fprintf(stderr, "Oops, I can't find %s.", GNUPLOT_PATH);
exit(EXIT_FAILURE);
}

// gnuplotにコマンドを送る
fprintf(gp, "set terminal png\n");
fprintf(gp, "set output 'plot_sample.png'\n");
//fprintf(gp, "set "xl 距離"\n");
fprintf(gp, "set title '%s'", s);
fprintf(gp, "set xrange [-pi:pi]\n");
fprintf(gp, "plot sin(x), (x+1)*x*(x-1)\n");

fflush(gp); // バッファに格納されているデータを吐き出す(必須)
//getchar(); // 入力待ち
_pclose(gp);
exit(EXIT_SUCCESS);
}

ここでscanf(%s,s);のところでsに、あア亜と入力しました。

最終的にpngの画像としてあア亜と出力させようとしているのですが、文字化けして文字がうまくひょうじされていません。
なぜ、うまくいかないのかわかっていません。
pngにおける文字の取り扱いの問題なのかC言語における文字の取り扱いなのかと考えて解決策を考えているのですが、うまくいきません。
もしわかる方がいましたら教えていただけないでしょうか?

よろしくお願いいたします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

詳細はわかりませんが


・PNGは、画素全部の色情報でできている:座標(X,Y)の色は何、というのが全画素分
最終的な画像をgnuplot側で処理して出力される。
Gnuplotとの文字コードが不一致だと、文字化けする。

・EMFは、図形の情報でできている: 座標(x,y)に○、座標(X,Y)に□、といった感じ
文字列も、テキストそのものがデータとして記録される。
EMFを表示するアプリでの文字コードと一致すれば文字化けしない

ということではないか、と。
HTMLで例えるなら、
・PNGはエンコード不一致状態で文字化けした状態をスクリーンショットで保存したもの。
・EMFはHTMLそのものを保存して、後で正しいエンコーディングでブラウザで見ている状態
とでもいいましょうか。

○ファイル保存方法
FILE *型 はファイルポインタといって、OSの機能を使って、異る装置に対する入出力を、同じ操作で行うために使われるものです。
_popenはその入出力先としてプログラムを指定します。使い終ったら_pcloseで閉じます。
fopen関数を使うと、入出力先とてファイルを指定できます。使い終ったらfcloseで閉じます。

オープンしてFILE *と結びつければ、その先がプログラムなのかファイルなのかは意識する必要はほとんど無く、例えばfprintfでその出力先へ出力してくれます。

今回の場合なら、_popen→fopenで出力先だけ変えるのが、変更箇所も少なく、元に戻しやすい方法です。
なお、出力先のファイル指定を忘れずに。今のままでは_popenをfopenに変えただけだと、gnuplotの実行ファイルを破壊します。

このあたりの入出力はC言語だけでなく、他言語でも基礎ですので、勉強することをお勧めします。
    • good
    • 0
この回答へのお礼

ありがとうございます。勉強します

お礼日時:2011/04/24 18:38

文字にも表示するための「番号」が付いてるのは判る?



で、その番号ってのは「規格」が色々有ってね。
入力と出力と処理とで規格が合致してないと正しく表示できない。

入力がAという規格の「ファイル」に記述された文字
処理がBという規格の文字を扱って
出力がCという規格・・・
なんて事になったら変換しないといけない

Aがインチ、Bが尺、Cがメートル みたいな話。どれも長さなのに。


「文字コード」で調べたら良いんじゃないかな。
使ってる表示と処理が何になってるかって話。
因みにC言語自体は「バイナリ」として扱うから規格自体は何でも関係ないんだけどそれを編集しているエディタの「文字表示」が入出力と異なってると(以下略・・・かなりややこしいからすぐ理解できないとおもう
    • good
    • 0
この回答へのお礼

ありがとうございます。
文字コードで検索して考えてみます。

お礼日時:2011/04/23 19:59

> pngにおける文字の取り扱いの問題なのかC言語における文字の取り扱いなのかと考えて解決策を考えているのですが、うまくいきません



まず、pngはbmp等と同じで、各点の色しか覚えていません。「pngにおける文字の取り扱い」は、ただの「絵」であって、「文字化け」は、その絵を作るときに発生します。

C 言語では、特になにもしなければ、ソースに書いたバイト列がそのまま出力されます。
scanfも受け取ったバイト列そのままです。
文字化けしないようにするには、出力の際に文字コードを変換するか、出力を受けとるソフトの方で変換するか、です。


今回の場合は、Cが出力する文字コードと、Gnuplotが期待する文字コードの不一致が原因でしょう。
Gnuplotの対応は、バージョンやパッチ、ビルド時の設定によって違ってきます。そのため、御自身で調べていただかないとなのですが
・スクリプトで 「set encoding XXX」 と文字コードを変更する
・Cの文字コード変換ライブラリを探すかして、Gnuplotが求めるコードで出力する
といったことが必要です。

また、直接_popenでgnuplotに送らず、一旦ファイルに書き出せば、期待通りのスクリプトがgnuplotに送られているかの確認もできるし、いちいちCのコンパイル→実行をしなくても、スクリプト変更による動作の確認ができます

この回答への補足

#include<iostream>
#include<cstdio>
#include<stdio.h>
using namespace std;
#define GNUPLOT_PATH "C:/gnuplot/gnuplot/binary/gnuplot.exe"

int main()
{
FILE *gp;
char s[100];
//scanf("%s", s);

gp = _popen(GNUPLOT_PATH, "w");
if (gp == NULL) {
fprintf(stderr, "Oops, I can't find %s.", GNUPLOT_PATH);
exit(EXIT_FAILURE);
}

// gnuplotにコマンドを送る
//fprintf(gp, "set terminal png\n");
fprintf(gp, "set terminal emf color 'Ryumin-Light-EUC-H' 16\n");
fprintf(gp, "set output 'plot_sample.emf'\n");
fprintf(gp, "set title 'ううう'\n");
//fprintf(gp, "set title '%s' font 'MS明朝", s);
fprintf(gp, "set xrange [-pi:pi]\n");
fprintf(gp, "plot sin(x), (x+1)*x*(x-1)\n");

fflush(gp); // バッファに格納されているデータを吐き出す(必須)
//getchar(); // 入力待ち
_pclose(gp);
exit(EXIT_SUCCESS);
}

プログラムを上記のように変更しました。ファイル形式をpngからemfに変換しています。すると文字化けされずに表記されました。
しかし、うまくいった理由がわかりません。できれば別の形式で保存したいのですが。うまくいった理由や他の手法があれば教えていただけないでしょうか?よろしくお願いいたします。

補足日時:2011/04/23 20:54
    • good
    • 0
この回答へのお礼

ありがとうございます。

>直接_popenでgnuplotに送らず、一旦ファイルに書き出せば、期待通りのスクリプトがgnuplotに送られているかの確認もできるし、いちいちCのコンパイル→実行をしなくても、スクリプト変更による動作の確認ができます。

この部分を自分で行おうとしているのですが、具体的なやり方がわかりません。
よろしければ、教えていただけないでしょうか?

よろしくお願いいたします。

お礼日時:2011/04/23 19:58

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q分からない漢字の読み方検索方法

2,3問前の質問で読み方を教えて
くださいと言う質問に答えた方が
コピペして、、、、と書かれてい
たのですが、もう少し詳しく教えて
下さいませんか?
文字を青くして右クリックしました
が、その後が分かりません。

Aベストアンサー

> その後が分かりません。
原文では多分、こういうことだと思います。
Windows PC でのことでしょう。( XP では確認しました)

書いてあるように、コピーしたらペーストする(貼り付ける)のですが
貼り付けられる場所でないとダメですね。
メモ帳など、文字を入力可能なものを開くのが確実ですが、
開いてるウェブページに質問や検索文字などのの入力欄があれば
そこでも使用可能です。
そこに貼り付け、[変換]キーを押すと、再変換の為に
「読み」を含む「他の読み一覧」が表示されます。


あと、漢和辞典のサイトの例です。

ウィクショナリー
http://ja.wiktionary.org/wiki/%e6%bc%a2%e5%ad%97%e8%be%9e%e5%85%b8
インフォシーク漢字辞典
http://dictionary.www.infoseek.co.jp/?sc=1&se=on&lp=0&gr=kj&sv=KJ&qt=%b4%c1%bb%fa%bc%ad%c5%b5&qty=&qtb=&qtk=0


ついでに、ここでいろんな辞書を探せます。
http://search2.kotoba.jp/iresult3.cgi

検索窓に、例えば「漢字辞典」のように入力して検索すると
漢字辞典のサイトが出ます。

> その後が分かりません。
原文では多分、こういうことだと思います。
Windows PC でのことでしょう。( XP では確認しました)

書いてあるように、コピーしたらペーストする(貼り付ける)のですが
貼り付けられる場所でないとダメですね。
メモ帳など、文字を入力可能なものを開くのが確実ですが、
開いてるウェブページに質問や検索文字などのの入力欄があれば
そこでも使用可能です。
そこに貼り付け、[変換]キーを押すと、再変換の為に
「読み」を含む「他の読み一覧」が表示されます。


あと、漢...続きを読む

QMicrosoft Visual C++ 6.0 でC言語のみで書かれたプログラムコードをビルドしたい

Microsoft Visual C++ 6.0 でC言語のみで書かれたプログラムコードをビルドしたいときはどうしたらいいのでしょうか?
何かスイッチがありますか?
C++の文法で書かれていたらエラーになって欲しいのです。

Aベストアンサー

6.0はどうだったか忘れましたが、/Tcまたは/TCオプションでC言語を強制できたような気がします。

Qこの漢字の読み方を教えて下さい

この漢字の読み方を教えて下さい

この漢字の読み方を教えて下さい。
お恥ずかしい話ですが、こういうくずした草書体のような文字が読めません。
周りの方に聞くのもなんとなく気恥ずかしく、
でも気になるという…(^_^;)

達筆すぎる方の字もなかなか読めなくて、
適当にごまかして読んだりしています。

こういう草書体の読み方を調べるサイトってあるのでしょうか?
検索しても、フォント用の草書体とかしか見つけることが出来ませんでした。

もしご存じの方がいらっしゃいましたら、
読み方ともども教えていただけましたら助かります。

よろしくお願いします。

Aベストアンサー

「養浩堂」ではないでしょうか?
右端の字は下部が「食」の典型的くずし方です。
「善」との見分け方は一番下の部分が「ら」のようになっているか「口」になっているかの違いです。
この場合「口」のように見える上に点がありますので、「養」と見ます。
次の字は「さんずい」の次の画の出だしと下に「口」があるので「浩」のようです。


御自分で調べられるのでしたら、参考のURL画面のページの一番下の「データベース選択画面」をクリックし、次のページで右下のほうにある「電子くずし字字典DB」をクリックすれば漢字入力でそれに該当するくずし字をいろいろ表示してくれます。
このページは便利ですよ。

参考URL:http://www.hi.u-tokyo.ac.jp/ships/shipscontroller

QC言語プログラムの質問です。 実数をxを読み込み次の計算をするCプログラムを作成し、そのプログラムリ

C言語プログラムの質問です。
実数をxを読み込み次の計算をするCプログラムを作成し、そのプログラムリストを記しなさい。
2sin(x)cos(x) および sin(2x)
次にこのプログラムを用いて、x=0.785を計算しなさい。

画像のプログラムを作成し、計算をしたのですが、計算結果が全て0.00000となってしまいます。
どこが間違っているか教えてください!

Aベストアンサー

scanfを以下のように変えてください。
scanf("%lf", &x);

Q魚へんに暖かいの日が無い漢字の読み方

魚へんに暖かいの日が無い漢字の読み方

しりあいに よのき さんという方が居ますがパソコンで検索しても漢字に変換できません

魚へんに暖かいの日が無い漢字の読み方をしりたいです

よの と呼ぶらしいです。よの貴と呼ぶそうです

Aベストアンサー

IMEパッドの話が出ているので参考に。

手書き認識だとこの時点で候補に表示されます。
結構形が分かっていても読みが分からない漢字の時には使えます。

QC言語によるgnuplotの呼び出し

シミュレーションによって得られた計算結果を自動的にgnuplotで
表示させるプログラミングを作成しました。シミュレーション自体は
fortranで行っていてfort.61というファイルが出力されます。
c言語でこのファイルを読みとって、それに少し細工をしfort.62
というファイルに新たに書き込んで、gnuplotで表示させたいのですが、
gnuplotの画面で no valid dataというエラーが表示されてしまいます。
ところが、cのプログラムを終了させてからgnuplotでこのfort.62を
通常の方法でplotすると、きちんとグラフが表示されます。

何が原因がわかるかたいらっしゃいましたら、教えて下さい。
ちなみにコンパイルはcygwin上でgccを使用しています。以下にソース
を添付します。gnuplotで読み込んでいるファイルplot.pltは
「plot "fort.62"」と記述してあるtextファイルです。
よろしくお願いします。

#include <stdio.h>
#include <stdlib.h>
#include <math.h>

int main(void) {
    FILE *fp,*fp2;
    int i,N;
    double x,y;
    double volt[100],curr[100];
    double norm,para;
    para = 0.2442E-03;
    N=14;
    fp=fopen("fort.61","r");
    for(i=0;i<N;i++){
      fscanf(fp,"%lf %lf",&x,&y);
      volt[i] = x;
      curr[i] = y;
      if(volt[i] == -1.0){
      norm = para/curr[i];
      }
    }
    for(i=0;i<N;i++){
      curr[i] = norm*curr[i];
    }
  close(fp);
  fp2 = fopen("fort.62","w");
    for(i=0;i<N;i++){
      fprintf(fp2,"%lf %lf\n",volt[i],curr[i]);
    }
    close(fp2);
    system("wgnuplot -persist plot.plt");
}

シミュレーションによって得られた計算結果を自動的にgnuplotで
表示させるプログラミングを作成しました。シミュレーション自体は
fortranで行っていてfort.61というファイルが出力されます。
c言語でこのファイルを読みとって、それに少し細工をしfort.62
というファイルに新たに書き込んで、gnuplotで表示させたいのですが、
gnuplotの画面で no valid dataというエラーが表示されてしまいます。
ところが、cのプログラムを終了させてからgnuplotでこのfort.62を
通常の方法でplotすると、きちんとグラ...続きを読む

Aベストアンサー

私はgnuplotについて何も知らないので、
とんちんかんな解答だったらすみません。

>    double norm,para;
>      if(volt[i] == -1.0){
>      norm = para/curr[i];
>      }

volt[i]がたまたま-1.0になるとき「だけ」normを計算し、
volt[i]が-1.0になることがない場合はnormの値は不定(ゴミ)です。
それでよいのでしょうか?

>    fp=fopen("fort.61","r");
>  fp2 = fopen("fort.62","w");

ファイルをオープンできなかったときの処理が書いてありません。
それでよいのでしょうか?

>  close(fp);
>    close(fp2);

closeという関数は標準関数に見あたりません。
fcloseか何かの間違いでしょうか。

Q韓国語の漢字の読み方は呉音、漢音、唐音?

日本語の漢字の音の読み方は呉音、漢音、唐音などがあるようですが、韓国語の漢字の読み方はどれに相当するのでしょうか。韓国語では漢字の読み方は原則一種類しかないと聞いています。

Aベストアンサー

結論から申し上げれば、
『漢音=唐代長安音』が根幹をなすモノのようです。


以下はお暇な時に、参考までに読んで下さればと存じます。

>日本語の漢字の音の読み方は呉音、漢音、唐音などがあるようですが
↓こちらでそれぞれに「どう読むか」があるのですが、
http://www.geocities.jp/johannes_schiffberg/kanji.html
最初に書かれている「行」に関して言えば、韓国語では「ヘン」です。ということは、どれにも属さないことになります。
但し、中国の方言としては出て来るようでして↓
http://www.zdic.net/zd/zi/ZdicE8ZdicA1Zdic8C.htm
台湾4県・陸豊・梅県・海陸豊に hen と。(後ろの数字は?ですが)

改めて韓国における漢字語とは、いつ頃?どこから?をnetの中で眺めてみるとこのような記載がありました。
朝鮮語学小辞典 - 漢字語
http://www.tufs.ac.jp/ts/personal/choes/cgi-bin/enc/korenc.cgi?%E6%BC%A2%E5%AD%97%E8%AA%9E
中を読んで頂ければお判りの通り、中国に限らず日本からの「外来語」も含めて韓国での「漢字語」というのが実に様々に存在します。
それらを踏まえて、では基本的に52.1%の漢字語を読む「音」はどこから?と更に読んで行くと、次のような記述がありました。
朝鮮語学小辞典 - 朝鮮漢字音
http://www.tufs.ac.jp/ts/personal/choes/cgi-bin/enc/korenc.cgi?%E6%9C%9D%E9%AE%AE%E6%BC%A2%E5%AD%97%E9%9F%B3
そして結論として最後に書かれたのを引用すれば

『4.4. 朝鮮漢字音の母胎音
朝鮮漢字音が中国のいつの時代の音を母胎としているのかについては,これまで複数の研究者が仮説を唱えてきた。伊藤智ゆき(2007)によれば,上古音説(姜信沆など),切韻音説(朴炳采),唐代長安説(河野六郎),宋代開封音説(有坂秀世)などを検討し,具体的に特定するのは難しいとしつつも,唐代長安音が朝鮮漢字音の元になっている可能性が高いと述べている。』

ということは、最初に載せたURLの中からの引用ですが
『漢音:日本漢字音の一。唐代、長安(今の西安)地方で用いた標準的な発音を写したもの。』
であるなら、結局韓国語における漢字の読み方というのは、唐代長安音=『漢音』が根幹をなすモノのようです

参考URL:http://www.tufs.ac.jp/ts/personal/choes/cgi-bin/enc/korenc.cgi?IndexPage

結論から申し上げれば、
『漢音=唐代長安音』が根幹をなすモノのようです。


以下はお暇な時に、参考までに読んで下さればと存じます。

>日本語の漢字の音の読み方は呉音、漢音、唐音などがあるようですが
↓こちらでそれぞれに「どう読むか」があるのですが、
http://www.geocities.jp/johannes_schiffberg/kanji.html
最初に書かれている「行」に関して言えば、韓国語では「ヘン」です。ということは、どれにも属さないことになります。
但し、中国の方言としては出て来るようでして↓
http://www....続きを読む

QC言語C++言語アセンブラ言語の就職先

自分は以前Javaプログラマをやってました。

あまりに、便利なライブラリばかりで、「なんかプログラムを書いているというより、ソフトウェアの振る舞いを書いているだけだ。。」とおもってしまい、すきになれませんでした。正直、苦痛でした。

今、上記言語を勉強しているのですが、コンピュータの根本からプログラムをしている実感が沸き、とても面白いです。

でも、これらの言語を習得したところでどんなところに就職できるのかさっぱりわかりませんし、需要があるのかもしりません。いわゆる組み込み系統は就職できるんでしょうが、私としてはアルゴリズムでUNIXのプログラムをシコシコ書いているような作業がすきなのです。いってみれば、私はクラシックな人間だとおもいます。

そんな僕ですが、就職先はあるのでしょうか?よろしくお願いします。

Aベストアンサー

 勉強熱心ですね。
 実際に、kamkamkam3-san の言われている、
「なんかプログラムを書いているというより、ソフトウェアの振る舞いを書いているだけだ。。」というのは的を得ています。
 
 経験からなんですが、ソフトウェア会社では、ノウハウとしてライブラリをもっています。ちょうど、Java のクラス・ライブラリーなようなものです。ですから、それらを使って製品を効率良く製品をつくれるかが重要です。実際のソフトウェア・エンジニアは、それをうまく使って効率良くコーディングすることを要求されます。

 ソフトウェア業界は、1人で閉じた製品を開発することは、まずないです。製品=プロジェクトだとすると、最低3名~100人以上が同時進行となります。そうなると、割り当てられたノルマを効率良く行うかが評価のポイントになります。つまり、「ソフトウェアの振る舞いを書いているだけ」ということにもなります。

 コンピュータ言語は、あくまでもツール(道具)です。
 kamkamkam3-san が、今後どういった分野の仕事を希望している(興味がある)かが重要だと思います。
 その答えとして、「C言語C++言語アセンブラ言語」を勉強することで実感できると思います。ですので、ぜひ、勉強を続けてください。

 勉強熱心ですね。
 実際に、kamkamkam3-san の言われている、
「なんかプログラムを書いているというより、ソフトウェアの振る舞いを書いているだけだ。。」というのは的を得ています。
 
 経験からなんですが、ソフトウェア会社では、ノウハウとしてライブラリをもっています。ちょうど、Java のクラス・ライブラリーなようなものです。ですから、それらを使って製品を効率良く製品をつくれるかが重要です。実際のソフトウェア・エンジニアは、それをうまく使って効率良くコーディングすることを要求さ...続きを読む

Qなぜ漢字は読み方が2通りあるのですか?

なぜ漢字は読み方が2通りあるのですか?

中国では、1つの漢字に一通りしか読み方がないと思います。
その中国から漢字が伝わってきたと思うのですが、、
どこで、どうやって、日本では2通りの読み方になってしまったのでしょうか?

よろしくお願いします。

Aベストアンサー

古代の日本には文字がなく、中国から漢字を輸入したのです。ところが、漢字の発音は中国流ですが、漢字の表す意味と同じ概念を表す日本語が既にあったのですね。例えば「心(しん)」には「こころ」がありました。

日本人の凄いところは、一つの漢字に中国音(音)と日本音(訓)を当てはめて、二つの読み方をできるようにしたことです。漢字を輸入したのは、朝鮮もベトナムも同じですが、訓読みを使用するのは日本だけで、朝鮮(韓国)もベトナムも一つの漢字の読みは中国音(自国流に訛ってますが)の一種類です。

さらに、他の方が書いておられるように、日本では呉音、漢音、唐音の3種類がありますが、朝鮮もベトナムも1種類です。訓にしてもある漢字に相当する日本語が複数あるときは、全部使います。

また、「考」という漢字に「考える」というように振り仮名をつけて、動詞や形容詞を「漢字+かな」で表現するというのも日本独特です。

QgnuplotをC言語で操作する方法

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 と混ざってしまっているのでしょうか?

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");
...続きを読む

Aベストアンサー

fprintf の引数は(FILE*, フォーマット文字列,....) だと言うことをお忘れではないでしょうか?
%.1fはfprintfで解釈されて、dounle型を変換した文字列が出力されます。
そのdouble型の引数が無いんので、なにかその領域にあるものを無理矢理変換したか、領域違反でエラーになったか、です。

そのまま%を送りたいなら、次のようなものが常套手段でしょう。

fprintf(gp, "set format x '%%.1f' \n");
// %を二つ並べて、フォーマット変換を無効にする

fprintf(gp,"%s" "set format x '%.1f' \n");
// フォーマットに%sを指定して、文字列を与える


人気Q&Aランキング

おすすめ情報