putc

[機能]

  ストリームに 1 文字出力します.機能として,fputc と同じですが,関数ではなく,マクロとして記述してあります.成功すると,書き込んだ文字を返します.

[形式]
	#include <stdio.h>

	int putc(int c, FILE *stream)
		c      : 書き込む文字
		stream : FILE 構造体へのポインタ
		
[使用例]

  1. putc 関数と fputs 関数の比較
    #include <stdio.h>
    
    int main()
    {
    	int i1;
    	char *str = "abcdefg";
    	FILE *stream;
    /*
    		 ファイルのオープン
    */
    	stream = fopen("data", "w");
    /*
    		 putc関数による出力
    */
    	for (i1 = 0; i1 < 7; i1++)
    		putc((int)str[i1], stream);
    	putc('\n', stream);
    /*
    		 fputs関数による出力
    */
    	fputs(str, stream);
    
    	return 0;
    }
    			
    (出力) -ファイルの内容-
    abcdefg
    abcdefg
    			
  2. putc,putw,getc,getw の比較
    #include <stdio.h>
    
    int main()
    {
    	int k1 = 0x61626364;   /* "abcd" */
    	int k2;
    	char c1 = 'a';         /* 0x61 */
    	char c2 = 'b';         /* 0x62 */
    	char c3, c4;
    	FILE *stream;
    /*
    		 テストデータをファイルへ出力
    */
    	printf("k1 0x%8x c1 %c c2 %c\n", k1, c1, c2);
    
    	stream = fopen("data", "w");
    
    	putc(c1, stream);
    	putc(c2, stream);
    
    	putw(k1, stream);
    
    	fclose(stream);
    /*
    		 データの読込
    */
    	stream = fopen("data", "r");
    
    	k2     = getw(stream);
    
    	c3     = (char)getc(stream);
    	c4     = (char)getc(stream);
    
    	printf("k2 0x%8x c3 %c c4 %c\n", k2, c3, c4);
    
    	fclose(stream);
    
    	return 0;
    }
    			
    (出力)
    k1 0x61626364 c1 a c2 b
    k2 0x63646261 c3 b c4 a
    			
[参照]

getc, getchar, gets, putchar, puts, fgetc, fgets, fputc, fputs, getw, putw

菅沼ホーム 本文目次 演習問題解答例 付録目次 索引