 
 
 
 
 
 
 
  
printf() では、整数データに対して、 %o, %d, %x という書式指定で、 それぞれ 8 進数, 10 進数, 16進数を表示できた。 C++ ではどうするか?
| kakezan.C | 
| // kakezan.C -- 掛け算 FF
#include <iostream.h>
int main()
{
  int i, j;
  // 掛け算 FF
  cout.setf(ios::hex, ios::basefield);
  for (i = 1; i <= 15; i++) {
    for (j = 1; j <= 15; j++) { 
      cout.width(3);
      cout << i * j;
    }
    cout << endl;
  }
  // 掛け算 77
  cout.setf(ios::oct, ios::basefield);
  for (i = 1; i <= 7; i++) {
    for (j = 1; j <= 7; j++) { 
      cout.width(3);
      cout << i * j;
    }
    cout << endl;
  }
  // 掛け算 99
  cout.setf(ios::dec, ios::basefield);
  for (i = 1; i <= 9; i++) {
    for (j = 1; j <= 9; j++) { 
      cout.width(3);
      cout << i * j;
    }
    cout << endl;
  }
  return 0;
}
 | 
| kakezan-new.C | 
| // kakezan.C -- 掛け算 FF
#include <iostream.h>
#include <iomanip.h>
int main()
{
  int i, j;
  // 掛け算 FF
  cout << hex;
  for (i = 1; i <= 15; i++) {
    for (j = 1; j <= 15; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  // 掛け算 77
  cout << oct;
  for (i = 1; i <= 7; i++) {
    for (j = 1; j <= 7; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  // 掛け算 99
  cout << dec;
  for (i = 1; i <= 9; i++) {
    for (j = 1; j <= 9; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  return 0;
}
 | 
| kakezan-new2.C | 
| // kakezan-new2.C -- 掛け算 FF
#include <iostream.h>
#include <iomanip.h>
int main()
{
  int i, j;
  // 掛け算 FF
  cout << setbase(16);
  for (i = 1; i <= 15; i++) {
    for (j = 1; j <= 15; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  // 掛け算 77
  cout << setbase(8);
  for (i = 1; i <= 7; i++) {
    for (j = 1; j <= 7; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  // 掛け算 99
  cout << setbase(10);
  for (i = 1; i <= 9; i++) {
    for (j = 1; j <= 9; j++)
      cout << setw(3) << i * j;
    cout << endl;
  }
  return 0;
}
 | 
 
 
 
 
 
 
