[PR]

printf, fprintf, sprintf 使用上の注意

戻る

 printf( str ) の様な書き方は、ときとしてお茶目な振る舞いをする。

puts, fputs, printf の動作の違いを確認する

//*********************************************************
// puts, fputs, printf の動作を確認する。
// %d や %p を使うと %% よりもひどいことになる。
//*********************************************************
int main( void )
{
#define trace(code) ( printf( "%s:\n\t", #code ), code, puts( "" ) )

	char *str = "%%%%%%%%%%"; // '%' * 10
	
	trace( puts( str ) );
	trace( fputs( str, stdout ) );
	trace( printf( "%s", str ) );
	trace( printf( str ) );

	return 0;

#undef trace // #define trace(code)
}//main

実行結果

puts( str ):            // ( '%' * 10 ) + '\n'
	%%%%%%%%%%

fputs( str, stdout ):   // '%' * 10
	%%%%%%%%%%
printf( "%s", str ):    // '%' * 10
	%%%%%%%%%%
printf( str ):          // '%' * 5
	%%%%%

関連

1行注釈(//)使用上の注意
文字関数(isalnum, toupper など) 使用上の注意
右シフト演算子(>>)使用上の注意


Google
ご意見・ご感想をお聞かせ下さい。匿名で送信できます。

 * 返信が必要な場合には postmaster@katsura-kotonoha.sakura.ne.jp へ直接メールしてください。

水無瀬 優 postmaster@katsura-kotonoha.sakura.ne.jp
IDGは全世界85カ国でIT関連雑誌を発行する出版社です。