#include <iostream.h>
main()
{
cout.setf(ios::showbase|ios::hex);
/*
or
cout.setf(ios::hex);
cout.setf(ios::showbase);
*/
cout << 100; // 0x64 출력
return 0;
}
#include <iostream.h>
main()
{
cout.setf(ios::uppercase | ios::scientific);
cout << 100.12; // 1.0012E+02 출력
cout.unsetf(ios::uppercase); // uppercase 해제
cout << " \n" << 100.12; // 1.0012e+02 출력
return 0;
}
#incldue <iostream.h>
// 이 함수는 포맷 플래그들의 상태를 출력한다.
void showflags()
{
long f, i;
int j;
char flgs[15][12] = {
"skipws",
"left",
"right",
"internal",
"dec",
"oct",
"hex",
"showbase",
"showpoint",
"uppercase",
"showpos",
"scientific",
"fixed",
"unitbuf",
};
f = cout.flags(); // 설정 플래그 얻기
// 각 플래그 검사
for(i=1, j=0; i<=0x2000; i = i<<1, j++)
if(i & f) cout << flags[j] << " is on \n";
else cout << flgs[j] << " is off \n";
cout << " \n";
}
main()
{
// 포맷 플래그들의 내정 조건을 보인다.
showflags();
cout.setf(ios::right | ios::showpoint | ios::fixed);
showflags();
return 0;
}
#include <iostream.h>
main()
{
cout.precision(4);
cout.width(10);
cout << 10.12345 << "\n"; // 10.12 출력
cout.fill('*');
cout.width(10);
cout << 10.12345 << "\n"; // *****10.12 출력
// 필드 너비를 문자열에도 적용한다.
cout.width(10);
cout << "Hi!" << "\n"; // *******Hi! 출력
cout.width(10);
cout.setf(ios::left); // 왼쪽에 맞추기
cout << 10.12345; // 10.12***** 출력
return 0;
}
#include <iostream.h>
#include <iomanip.h>
main()
{
cout << hex << 100 << end1;
cout << setfill('?') << setw(10) << 2343.0;
/*
or
cout.setf(ios::hex);
cout << 100 << "\n"; // 100을 16진수로
cout.fill('?');
cout.width(10);
cout << 2343.0;
*/
return 0;
}
#include <iostream.h>
#include <iomanip.h>
main()
{
cout << setiosflags(ios::showpos);
cout << setiosflags(ios::showbase);
cout << 123 << " " << hex << 123;
return 0;
}
#include <iostream.h>
#include <iomanip.h>
// 간단한 출력 조작자
ostream &sethex(ostream &stream)
{
stream.setf(ios::showbase);
stream.setf(ios::hex);
return stream;
}
main()
{
cout << 256 << " " << sethex << 256;
return 0;
}
#include <iostream.h>
#include <iomanip.h>
// 오른쪽 화살표
ostream &ra(ostream &stream)
{
stream << "-------> ";
return stream;
}
// 왼쪽 화살표
ostream &la(ostream &stream)
{
stream << " <-------";
return stream;
}
main()
{
cout << "High balance " << ra << 1233.23 << "\n";
cout << "Over draft " << ra << 567.66 << la;
return 0;
}
#include <iostream.h>
#include <iomanip.h>
// length 수만큼의 공란으로 열 맞추기
ostream &indent(ostream &stream, int length)
{
register int i;
for(i=0; i<length; i++) cout << " ";
return stream;
}
omanip<int> indent(int length)
{
return omanip<int>(indent, length);
}
main()
{
cout << indent(10) << "This is a test\n";
cout << indent(20) << "of the indent manipulator.\n";
cout << indent(5) << "It works!\n";
return 0;
}
#include <iostream.h>
#include <string.h>
// 간단한 입력 조작자
istream &getpass(istream &stream)
{
cout << '\a'; // sound bell
cout << "Enter password: ";
return stream;
}
main()
{
char pw[80];
do {
cin >> getpass >> pw;
} while(strcmp(pw, "password"));
cout << "Logon complete\n";
return 0;
}
// 이 프로그램은 패스워드를 입력하기 위해서 조작자를 사용한다
#include <iostream.h>
#include <iomanip.h>
#include <string.h>
#include <stdlib.h>
char *password="IlikeC++";
char pw[80];
// 패스워드 입력
istream &getpass(istream &stream, int tries)
{
do {
cout << "Enter password: ";
stream >> pw;
if(!strcmp(password, pw)) return stream;
cout << "\a"; // bell
tries--;
} while(tries>0);
cout << "All tries failed!\n";
exit(1); // didn't enter password
return stream;
}
imanip<int> getpass(int tries) {
return imanip<int>(getpass, tries);
}
main()
{
// 세 번 패스워드를 입력 시도한다.
cin >> getpass(3);
cout << "Login Complete!\n";
return 0;
}