basic_ios::eof

basic_ios::eofは、EOFかどうかを表す。

basic_ios::eof - cpprefjp C++日本語リファレンス

goodでない場合といっても、EOFの場合、エラーの場合、などいくつかある。

goodでない場合に、eofで判定する。

$ vi basic_ios.cpp
$ g++ basic_ios.cpp -o basic_ios
$ ./basic_ios
s: abcde
s = abcdeFGHIJ
good
$ ./basic_ios
s: xyzs = xyzDEFGHIJ
!
EOF
$

5文字だと"good"、3文字だと"!"で"EOF"である。

Sample/cpp/basic_ios/eof/src/basic_ios at master · bg1bgst333/Sample · GitHub

basic_ios::good

basic_ios::goodは、ストリームが正常かどうかを表す。

basic_ios::good - cpprefjp C++日本語リファレンス

今度は、good()で判定してみる。

今回も、cinでreadして、goodかどうかを判定する。
goodなら、"good"と出力。そうでない場合は"!"を出力。

$ vi basic_ios.cpp
$ g++ basic_ios.cpp -o basic_ios
$ ./basic_ios
s: abcde
s = abcdeFGHIJ
good
$ ./basic_ios
s: xyzs = xyzDEFGHIJ
!
$

5文字の場合は、"good"と出力。
3文字でEOFの場合は、"!"と出力。

Sample/cpp/basic_ios/good/src/basic_ios at master · bg1bgst333/Sample · GitHub

ios

iosは、basic_ios<char>のエイリアス。basic_iosは、basic_istreamの基底クラスの1つ。
ロケールや文字に依存した書式の状態、ストリームバッファの状態と操作を行うメンバが定義されている。

basic_ios - cpprefjp C++日本語リファレンス

エラーやEOFでストリームの状態がどうなっているかの判定方法の1つをやってみる。

basic_istream::readの時のプログラムで、std::cinの参照をstd::ios&のacinとしてもらって、!acinがtrueなら、"!"を出力する。

basic_ios::operator void* - cpprefjp C++日本語リファレンス

EOFやエラーなどのfail状態(後のトピックで扱う。)になった時は、NULLポインタを返すので、その反転で!acinはtrueになると・・・。そういうこと。
(ただし、void *ポインタの演算子定義は、C++03までであり、C++11では、
basic_ios::operator bool - cpprefjp C++日本語リファレンス
boolの演算子定義になっているので、書き方によってはエラーになるので注意。)

$ vi ios.cpp
$ g++ ios.cpp -o ios
$ ./ios
s: abcde
s = abcdeFGHIJ
$ ./ios
s: xyzs = xyzDEFGHIJ
!
$

1回目は、5文字入力して、正常なので何も起きない。
2回目は、3文字入力したら、Ctrl+Dを2回押して、EOFを送っている。
readは指定の文字数に達せずにEOFを受け取ったので、この場合ストリームはfail状態になっている。

Sample/cpp/ios/ios/src/ios at master · bg1bgst333/Sample · GitHub

font#face

フォントの種類を指定するには、fontのface属性を指定する。

<font> - フォント

いくつかフォントを指定してみる。

Linuxで明らかに変わるフォントがこれぐらいしかなさそう・・・。

Times New Roman
Courierと

変わった。

Sample/html/font/face/src/font at master · bg1bgst333/Sample · GitHub

font#size

テキストのサイズは、fontのsize属性で指定する。

<font> - フォント
文字の表示

1から7までの数字で指定でき、一番小さいのは1、1番大きいのが7。

1から7まで並べてみる。

1から7まで
1から7まで

こうなる。

Sample/html/font/size/src/font at master · bg1bgst333/Sample · GitHub

font#color

テキストの色は、fontのcolor属性で指定する。

<font> - フォント
文字の表示

一部の色は、fontのcolor属性で色名で指定することもできるし、6桁16進数ではなく3桁16進数で表すこともできる。

赤、緑、青、緑として出力。

微妙に色が違う
微妙に色が違う

2番目と4番目の色が、微妙に違う。
実は、0x00ff00は緑ではなくライムらしい。緑は0x008000。

Sample/html/font/color/src/font at master · bg1bgst333/Sample · GitHub