標準入出力関数

標準入出力

標準入出力関数

フィルター(入力を変換して出力にコピーするプログラム)

 getchar()とputchar(c)

  1. 文字操作関数を用いて、入力中の英大文字を全て英小文字に変換して出力してみよ
  2. 入力中の英小文字を大文字に変換して出力してみよ(2010.7.5追加)
  3. 入力の行数を数えてみよ
  4. 入力の英数字記号の出現回数をそれぞれ数えてみよ

 gets(s)とputs(s)

書式付き入出力

 scanf

 printf

 変換文字(%の後ろの文字)

printfの書式文字列をマスターする

文字列編

/* printfの書式文字列(文字列編) */
#include <stdio.h>

	char	s[] = "Hello World";
	char	ss[40];
	int     w, n;

main()
{
 	printf("          :12345678901234567890\n");
 	printf("     :%%s: :%s:\n", s);
 	printf("    :%%5s: :%5s:\n", s);
 	printf("   :%%.5s: :%.5s:\n", s);
 	printf("   :%%15s: :%15s:\n", s);
 	printf("  :%%-15s: :%-15s:\n", s);
 	printf("  :%%.15s: :%.15s:\n", s);
 	printf(" :%%15.5s: :%15.5s:\n", s);
 	printf(":%%-15.5s: :%-15.5s:\n", s);
 	printf("          :12345678901234567890\n");
 	printf("\n");
 	printf("Input a string: ");
 	scanf("%s", ss );
 	printf("Input width and number: ");
 	scanf("%d %d", &w, &n );
 	printf(":12345678901234567890\n");
 	printf(":%*.*s: :%%%d.%ds:\n", w, n, ss, w, n );
}
/* end of printfs.c */

数値編

/* printfの書式文字列(数値編) */
#include <stdio.h>
#include <math.h>

#define	MORE

	int	i = 123;
	int	ii;
	double	d = 3.1415926535;
	double	dd;
	int	e, w, n;

main()
{
#ifdef	MORE
	printf(" %%d, %%o, %%x\n");
	printf("%d,%o,%x\n", i, i, i );
	printf(" %%05d, %%06o, %%04x\n");
	printf("%05d,%06o,%04x\n", i, i, i );
	printf("      %%e,      %%f,      %%g\n");
	printf("%e,%f,%g\n", d, d, d );
	printf("\n");
	printf("%%d:\n1234567890\n");
	for( e = 0; e < 5; e++ )
	{
		ii = i * pow( 10.0, e );
		printf("%d:\n", ii );
	}
	printf("%%5d:\n1234567890\n");
	for( e = 0; e < 5; e++ )
	{
		ii = i * pow( 10.0, e );
		printf("%5d:\n", ii );
	}
	printf("%%05d:\n1234567890\n");
	for( e = 0; e < 5; e++ )
	{
		ii = i * pow( 10.0, e );
		printf("%05d:\n", ii );
	}
	printf("%%10d:\n1234567890\n");
	for( e = 0; e < 5; e++ )
	{
		ii = i * pow( 10.0, e );
		printf("%10d:\n", ii );
	}
	printf("%%-10d:\n1234567890\n");
	for( e = 0; e < 5; e++ )
	{
		ii = i * pow( 10.0, e );
		printf("%-10d:\n", ii );
	}
	printf("\n");
	printf("      %%e,      %%f,      %%g\n");
	for( e = -6; e < 7; e++ )
	{
		dd = d * pow( 10.0, e );
		printf("%e,%f,%g\n", dd, dd, dd );
	}
	printf("    %%.4e,    %%.4f,    %%.4g\n");
	for( e = -6; e < 7; e++ )
	{
		dd = d * pow( 10.0, e );
		printf("%.4e,%.4f,%.4g\n", dd, dd, dd );
	}
	printf("    %%10.2e,    %%10.2f,    %%10.2g\n");
	printf("1234567890:1234567890:1234567890:\n");
	for( e = -6; e < 7; e++ )
	{
		dd = d * pow( 10.0, e );
		printf("%10.2e,%10.2f,%10.2g\n", dd, dd, dd );
	}
#else
	printf("\n");
	printf("Input a number: ");
	scanf("%lf", &dd );
	printf("Input width and number: ");
	scanf("%d %d", &w, &n );
	printf(":12345678901234567890\n");
 	printf(":%*.*e: :%%%d.%de:\n", w, n, dd, w, n );
 	printf(":%*.*f: :%%%d.%df:\n", w, n, dd, w, n );
 	printf(":%*.*g: :%%%d.%dg:\n", w, n, dd, w, n );
#endif
}
/* end of printfn.c */

scanf()について