「C++/stdio.h」の編集履歴(バックアップ)一覧に戻る
C++/stdio.h - (2008/01/30 (水) 21:21:17) の編集履歴(バックアップ)
書式
%[フラグ][最小フィールド幅][.精度][長さ修飾子]変換指定子
フラグ
-
- (左寄せ)
setw と left、setf(ios::left)、setiosflags(ios::left) を組み合わせる。
- C
-
C++
#include <iostream> // setw、setiosflags を使用する場合 #include <iomanip> int main() { int a = 10; int b = -1; // 幅のみ指定 std::cout << "a: " << std::setw(5) << a << " b: " << std::setw(5) << b << " (only setw)" << std::endl; // left で左寄せ std::cout << "a: " << std::left << std::setw(5) << a << " b: " << std::setw(5) << b << " (left)" << std::endl; // setf で左寄せ std::cout.setf(std::ios::left); std::cout << "a: " << std::setw(5) << a << " b: " << std::setw(5) << b << " (setf)" << std::endl; // setiosflags で左寄せ std::cout << "a: " << std::setiosflags(std::ios::left) << std::setw(5) << a << " b: " << std::setw(5) << b << " (setiosflags)" << std::endl; /* 出力結果 a: 10 b: -1 (only setw) a: 10 b: -1 (left) a: 10 b: -1 (setf) a: 10 b: -1 (setiosflags) */ return 0; }
-
+ (常に符号を出力)
- C
-
C++
setf(ios::showpos) または setiosflags(ios::showpos) を使用する。
#include <iostream> // setiosflags を使用する場合 #include <iomanip> int main() { int a = 10; int b = -1; // 指定なし std::cout << "a: " << a << " b: " << b << " (default)" << std::endl; // setf で指定 std::cout.setf(std::ios::showpos); std::cout << "a: " << a << " b: " << b << " (setf)" << std::endl; // setiosflags で指定 std::cout << std::setiosflags(std::ios::showpos) << "a: " << a << " b: " << b << " (setiosflags)" << std::endl; /* 出力結果 a: 10 b: -1 (default) a: +10 b: -1 (setf) a: +10 b: -1 (setiosflags) */ return 0; }
-
空白 (0以上の場合、符号の代わりに空白を出力)
- C
-
C++
?
-
0 (指定されたフィールド幅になるように0で埋める)
- C
-
C++
internal、setf(ios::internal)、setiosflags(ios::internal) と setfill('0') を組み合わせる。
#include <iostream> #include <iomanip> int main() { int a = 10; int b = -1; // 指定なし std::cout << "a: " << a << " b: " << b << " (default)" << std::endl; // internal と setfill で指定 std::cout << std::internal << std::setfill('0') << "a: " << std::setw(5) << a << " b: " << std::setw(5) << b << " (internal)" << std::endl; // setf と setfill で指定 std::cout.setf(std::ios::internal); std::cout << std::setfill('0') << "a: " << std::setw(5) << a << " b: " << std::setw(5) << b << " (setf)" << std::endl; // setiosflags と setfill で指定 std::cout << "a: " << std::setiosflags(std::ios::internal) << std::setw(5) << a << " b: " << std::setw(5) << b << " (setiosflags)" << std::endl; /* 出力結果 a: 10 b: -1 (default) a: +10 b: -1 (setf) a: +10 b: -1 (setiosflags) */ return 0; }
- # (数値データを特殊な形式で出力)
printf
-
C
#include <stdio.h> int main() { char *p = "Hello World"; printf("%s\n", p); return 0; }
-
C++
#include <iostream> int main() { char *p = "Hello World"; std::cout << p << std::endl; return 0; }