• ベストアンサー

printf,fprintfって・・・

moonlight_777の回答

  • ベストアンサー
回答No.2

printfは画面に文字や数値を表示させます。 fprintfはファイルに文字や数字を書き込ませます。

関連するQ&A

  • C++でfprintfやprintf,fopenなどを使うのは好ましくない?

    今までCは多少慣れがあり、一方でC++はごく最近始めました。 CとC++でパッと見明らかに違うのが入出力の関数とストリームだと思うのですが どうも私的にはCで使いっていたfprintfなどが使いやすいと思ってしまいます。 実数の表示の小数点以下の桁の指定とか、fprintf("xxxx%.3f")としたほうが ラクチンではないでしょうか? ただEffective C++などを見た感じC++ではC++のやり方のほうが良い とか書いてあってやはりそういうもんなのかなぁと。 それなら多少C++の利便性を切り捨ててでもCでやるかなぁと 思ってしまうのですが。。。 アドバイスいただけたら幸いです。お願いいたします。

  • fprintfを教えて下さいm(_ _)m

    fprintfの使い方は分かるんですが。。。 テキストに書き込みたい内容が 1 4 6 3 12 でしたら %d を使えばいいですが a: 1 b: 4 c: 6 d: 3 e:12 のように文字と数字を書き込むにはどうしたらいいでしょうか?実際に書くと。。。 fprintf( fp, "a: %d", val)といった形では数字しか出来ませんし fprintf( fp, "%c: 1", moji) といった形では文字しか出来ません。 理想はこの上の関数をドッキングした形です。 ご協力お願いしますm(_ _)m

  • fprintfで文字化け

    fprintfで数字をファイルに"w"モードで書き込んでいるだけなのですが、書き込む回数(数字の数)が大きいだけファイルに書き込んでも文字化けしてしまいます。原因は何が考えられるでしょうか? ちなみにprintfではちゃんと表示されています。 環境はWindowsXPでCygwinを使っています。

  • 文字の整列(printf)

    実行結果が下のようになっているプログラム(パスカルの三角形)を作成しました。 表示部分のコードは「printf("%5d",$combination);」です。 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1 1 9 36 84 126 126 84 36 9 1 1 10 45 120 210 252 210 120 45 10 1 これを、最終行の長さを基準にして、数値が奇数と偶数の部分で、 センター揃えにしたいのですが、printfでは簡単にできないのでしょうか? できるとすればどうすればよいのでしょうか? また、man page of printfには、次のような関数があるそうです。 fprintf, sprintf, snprintf, vprintf, vfprintf, vsprintf, vsnprintf これらの使い分けはどのようにすればよいのでしょうか? 一番長い名前のものを使いこなせると、一見レベルが高そうに思えますが…。 よろしくお願い致します。

    • ベストアンサー
    • Perl
  • C++でfscanf関数・fprintf関数を利用した成績処理のプログ

    C++でfscanf関数・fprintf関数を利用した成績処理のプログラムを作成しています。 #include "stdafx.h" void input(void); void calc(void); void edit(void); int gakusei=10,kamoku=5; /*学生数、科目数*/ char kamokumei[5][40]; /*科目名*/ char shimei[10][40]; /*氏名*/ int tennsuu[10][5]; /*点数*/ float heikin[10]; /*平均点*/ void main() /*メイン関数*/ { input(); calc (); edit (); } void input(void) /*データ入力(infile.d.txtから読み込む)*/ { FILE *fp; int n,k; fp=fopen("infile.d.txt","r"); if(fp==NULL) { printf("infile.d.txtが開けません\n"); } printf("infile.d.txt\n\n"); fscanf(fp,"%d %d",&gakusei,&kamoku); printf("%d %d\n",gakusei,kamoku); fscanf(fp,"%s",kamokumei); printf("%s\n",kamokumei); fscanf(fp,"%s",shimei); printf("%s\n",shimei); while(fscanf(fp,"%s",tennsuu)!=EOF) { printf("%s\n",tennsuu); } printf("\n\n"); fclose(fp); } void calc(void) /*各学生の平均点を計算、平均点の優秀者(80点以上)及び不合格者(60点未満)を摘出*/ { int n,k; float sum; for(n=0; n<gakusei; n++) { sum=0; for(k=0; k<kamoku; k++) { sum+=(float)tennsuu[n][k]; } heikin[n]=sum/kamoku; } } void edit(void) /*平均点、優秀者及び不合格者の氏名を付加した成績表を出力(outfile.d.txtに書き込み)*/ { int n; FILE *seiseki; seiseki=fopen("outfile.d.txt","w"); printf("outfile.d.txt\n\n"); fprintf(seiseki,"氏名 %s 平均\n",kamokumei); printf("氏名 %s 平均\n",kamokumei); fprintf(seiseki,"%s\n",shimei); printf("%s\n",shimei); for(n=0; n<gakusei; n++) { fprintf(seiseki,"%s",tennsuu); printf("%s\n",tennsuu); } printf("\n"); fprintf(seiseki,"平均点優秀者\n"); printf("平均点優秀者\n"); fprintf(seiseki,"平均点不合格者"); printf("平均点不合格者\n"); fclose(seiseki); } 添付した画像のoutfile.d.txtのようなフォーマットで出力したいのですが、氏名がうまく出力できません。また、点数もinfile.d.txtの最後の行しか読み込んでくれません。 どのように書き換えればよいのでしょうか? よろしくお願いします。 *infile.d.txtについて 10 5 ⇒学生数と科目数 材料力学 熱力学 ・・・ ⇒科目名 石川 川上 佐藤 ・・・ ⇒学生の氏名 78 95 75 86 ・・・ ⇒各科目の点数(1行につき5科目×2人分の点数が書き込まれています。)

  • printfだと出力されるのにfprintfだと出力されないのはなぜですか?

    今プログラムを作りかけなのですが、 forで何回もまわして計算しているので printfでそのまま出力すると見づらくなってきたので テキストに出力したくてちょっといじってみたんですが、テキストは作成されるんですが肝心の数字が出力されていません。 ソースのいじったところは pritf("s[%d]=%f\n",a,b); となっていたところを メイン分の最初で FILE *fp; を宣言して fp=fopen("test.txt","w"); 省略 fpritf(fp,"s[%d]=%f\n",a,b); と直しただけなのですが test.txtに何も書き込まれません。 ソースを省略しすぎかもしれませんが よろしくおねがいします。

  • C言語_関数宣言_fprintfです!お願いします!!

    C言語(C言語_関数宣言_fscanf)に関する質問です。 main関数とは別に新しく自分で関数を定義しました。 (keisan関数とします。) keisan関数の中に「fprintf」を用いたのですが上手くいきません。 (printfは通常通りに働きます。) どのような理由が考えられるでしょうか? (グローバル変数などの理由でしょうか?) どうか,ご指導お願いします!! #include <stdio.h> void kiroku(int ki1,int ki2){ printf("%d-%d\n",ki1,ki2); fprintf(fo,"%d-%d\n",ki1,ki2); /*↑このfprintfです*/ } int main(){ char *fnmo="kiroku.txt"; FILE *fo; int n,i; // open files. fo = fopen(fnmo,"w"); if(fo==NULL) { printf("NG\n"); return 0; } // read and store. n=1; i=2; kiroku(n,i); // close files. fclose(fo); return 0; }

  • Printfについて教えてください

     今日は。  Cの初心者です、宜しくお願いします。  javaにはPrintとかPrintlnという両方のコマンドがありますが、CにはPrintfしかないのでしょうか。  両方あれば改行コードの書き方が楽だと思うのですが。  皆さんはどのように改行コードを書いているのでしょうか。  宜しくお願いします。

  • Printfについて

     今日は。  Cの初心者です、宜しくお願いします。  javaにはPrintとかPrintlnという両方のコマンドがありますが、CにはPrintfしかないのでしょうか。  両方あれば改行コードの書き方が楽だと思うのですが。  皆さんはどのように改行コードを書いているのでしょうか。  宜しくお願いします。

  • printf(

    printf(" %s ", "test"); これはC++で文法に問題はないですが、 printf(" ", "test"); これはC++で文法に問題がないですか?