all about 標準出力

本物のページはこちら→printf

各言語でのprintf

コンソール出力 デバッグ出力 インクルード
c printf
c++ cout« cerr«
MFC TRACE()1
Android Log.d()+String.Format()
NDK __android_log_print()2
CUDA printf()3
Winアプリ OutpurDebugString()
C# Console.WriteLine("文字"+数字); Debug.WriteLine("");
Trace.WriteLine("")
using System.Diagnostics;
Java System.out.printf() String.format()
Objective-C NSLog(@"文字列");,stringWithFormat:@"%d",intvalue
Swift println("文字列\(変数名)")
javascript console.log("表示したい内容")

おなじ場所にprintfしつづける方法

printf("ファイル書き込み進行状況%d% \r", progress);

\rと書くこと

printfの書式

javaの場合
% フラグ 最小フィールド幅 精度 変換修飾子 変換指定子

フラグ

-
左詰めする
+
正負の符号をつける
空白
プラスの値には、プラス記号の代わりに空白を入れる。
#
??
0
0詰めする。

最小フィールド幅

何桁表示するのか。普通は「数字」を指定する。「*」(アスタリスク)を指定することもできる。

精度

変換修飾子

h
short型
l
long型
L
long double型

変換指定子

d,i
10進数
o
8進数
u
unsigned 無符号変換
x
小文字の16進数
X
大文字の16進数
f
浮動小数点
a,A
浮動小数点を16進数で表現する。
e,E
指数変換
g,G
実数変換
c
文字(charactor)
s
文字列
p
ポインタ変換
n
変換数変換 整数
%

printf-wikipedia

どんな状況でもprintfしようのヘッダ

//どんな状況でもprintfしようのヘッダ
//どんな状況でもprintfしようのヘッダ
#ifndef MIFFYDEBUG
#define MIFFYDEBUG
#ifdef _ANDROID_LOG_H//Android NDKの場合
#include <jni.h>
#include <errno.h>
#include <EGL/egl.h>
#ifdef GL2
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#else
#include <GLES/gl.h>
#endif
#include <android/sensor.h>
#include <android/log.h>
#include <android_native_app_glue.h>
#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "miffy", __VA_ARGS__))
#define LOGA(...) ((void)__android_log_print(ANDROID_LOG_FATAL, "miffy", __VA_ARGS__))
#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "miffy", __VA_ARGS__))
#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "miffy", __VA_ARGS__))
#elifdef _INC_SDKDDKVER//Win32アプリの場合
#define PRINT OutputDebugString
#elifdef __AFXWIN_H__//MFCアプリの場合 
#define PRINT TRACE
#else//ndk<->コンソールアプリ間の移行
#define LOGI printf
#define LOGE printf
#define LOGA printf
#define LOGW printf
#endif
 
#ifdef _UNICODE
typedef PRINT wprintf
#else
typedef PRINT printf
#endif
 
#endif

TCHARだった場合の対処

wprintf(L"hello%s",tchar);
std::wcout<<tchar<<std::endl;

各言語でのprintf

コンソール出力 デバッグ出力 インクルード 16進表記
c printf %x
c++ cout« cerr« #include <iostream> cout.setf(ios::hex,ios::basefield);
MFC TRACE()4
Android Log.d()
NDK __android_log_print()5
CUDA printf()6
Winアプリ OutpurDebugString()
C# Console.WriteLine("文字"+数字); Debug.WriteLine("");
Trace.WriteLine("")
using System.Diagnostics;
python print() print("%d"%数値) なし hex(数字)

おなじ場所にprintfしつづける方法

printf("ファイル書き込み進行状況%d% \r", progress);

\rと書くこと

printfの書式

% フラグ 最小フィールド幅 精度 変換修飾子 変換指定子

フラグ

-
左詰めする
+
正負の符号をつける
空白
プラスの値には、プラス記号の代わりに空白を入れる。
#
??
0
0詰めする。

最小フィールド幅

何桁表示するのか。普通は「数字」を指定する。「*」(アスタリスク)を指定することもできる。

精度

変換修飾子

h
short型
l
long型
L
long double型

変換指定子

d,i
10進数
o
8進数
u
unsigned 無符号変換
x
小文字の16進数
X
大文字の16進数
f
浮動小数点
a,A
浮動小数点を16進数で表現する。
e,E
指数変換
g,G
実数変換
c
文字(charactor)
s
文字列
p
ポインタ変換
n
変換数変換 整数
%

printf-wikipedia

どんな状況でもprintfしようのヘッダ

//どんな状況でもprintfしようのヘッダ
//どんな状況でもprintfしようのヘッダ
#ifndef MIFFYDEBUG
#define MIFFYDEBUG
#ifdef _ANDROID_LOG_H//Android NDKの場合
#include <jni.h>
#include <errno.h>
#include <EGL/egl.h>
#ifdef GL2
#include <GLES2/gl2.h>
#include <GLES2/gl2ext.h>
#else
#include <GLES/gl.h>
#endif
#include <android/sensor.h>
#include <android/log.h>
#include <android_native_app_glue.h>
#define LOGE(...) ((void)__android_log_print(ANDROID_LOG_ERROR, "miffy", __VA_ARGS__))
#define LOGA(...) ((void)__android_log_print(ANDROID_LOG_FATAL, "miffy", __VA_ARGS__))
#define LOGI(...) ((void)__android_log_print(ANDROID_LOG_INFO, "miffy", __VA_ARGS__))
#define LOGW(...) ((void)__android_log_print(ANDROID_LOG_WARN, "miffy", __VA_ARGS__))
#elifdef _INC_SDKDDKVER//Win32アプリの場合
#define PRINT OutputDebugString
#elifdef __AFXWIN_H__//MFCアプリの場合 
#define PRINT TRACE
#else//ndk<->コンソールアプリ間の移行
#define LOGI printf
#define LOGE printf
#define LOGA printf
#define LOGW printf
#endif
 
#ifdef _UNICODE
typedef PRINT wprintf
#else
typedef PRINT printf
#endif
 
#endif

TCHARだった場合の対処

wprintf(L"hello%s",tchar);
std::wcout<<tchar<<std::endl;

サポートサイト Wikidot.com