『C++Primer Plus』学習ノート11

13054 ワード

『C++Primer Plus』学習ノート11
第17章入力、出力とファイル<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<5)フォーマット出力6)istreamクラスメソッド7)ストリーム状態8)ファイルI/O 9)ifstreamクラスを使用してファイルから10を入力)ofstreamクラスを使用してファイル11に出力)fstreamクラスを使用してファイル入力と出力12)コマンドライン処理13)バイナリファイル14)ランダムファイルアクセス15)カーネルフォーマット<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<1、coutで出力1)cout
cout << value;
//  :ostream & operator<< (int)

2)他のostreamの方法:put()の方法--文字の原型を表示するために使用される:ostream&put(char);
cout.put('W'); //  w  ,cout        ,put()    
cout.put('i').put('t'); //    
//         ,          put(),                  char 
cout.put(65); // 65   char,  
cout.put(66.3); // double 66.3   char 66。       

3)write()メソッド-文字列プロトタイプを表示するには:basic_ostream& write(const char_type* s, streamsize n); 最初のパラメータは、表示する文字列アドレスを提供します.2番目のパラメータは、writeメソッドが空の文字に遭遇したときに自動的に印刷文字を停止するのではなく、文字列の境界を超えても指定された数の文字を印刷するだけであることに注意してください.4)出力バッファ制御子flushをリフレッシュしてバッファをリフレッシュする.コントロールendlはバッファをリフレッシュし、改行記号を挿入します.
cout << 'Hello, good-looking! ' << flush;
cout << 'Wait just a moment,please. ' << endl;

コントローラも関数で、coutバッファを直接flush()でリフレッシュできます
flush(cout);
//  cout << flush;

5)coutでフォーマットostream挿入オペレータで値をテキストフォーマットに変換します.デフォルトでは、フォーマット値の方式は、例えば、①char値の場合、幅が1文字のフィールドに1文字が表示されます②数値整数に対して、この数字とマイナス記号がちょうど収まるフィールドに10進数で表示されます③文字列がその文字列の長さに等しい幅のフィールドに表示されます④浮動小数点型が少し変化します新式:浮動小数点タイプが6ビットで表示され、末尾の0は表示されません.旧式:浮動小数点タイプは6桁の小数点付きで表示され、末尾の0も表示されません注意表示の桁数と数字が格納されている精度は関係ありません⑤表示を変更する際に使用するカウントシステムの10進数dec、coutデフォルトの10進数16進数hex制御子
cout << hex;
cout << n;

8進oct制御子
cout << oct;
cout << n;

⑥フィールド幅widthの調整
int width();//           
int width(int i);//        i   。           
cout.width(12);//      

ここで、width()メソッドは、次に表示されるアイテムにのみ影響し、フィールド幅はデフォルト値に戻ります.たとえば
int w = cout.width(30);
cout << w;

注意このとき文字列が表示されるとき.フィールド幅は30に設定されているが、wの値を表示すると、フィールド幅は30ではなく、次に現実的な項目に影響を与える.したがって0⑦パディング文字として表示されます
cout.fill('*');

ここはwidthとは違います.それはずっと有効です.⑧浮動小数点度を設定する表示精度C++のデフォルトの桁数は6で、末尾の0は表示されず、precision()メンバー関数で他の値を選択できます.
cout.precision(2);//      2。           

注意:旧式C++バージョン番号はデフォルトモードの精度を小数点以下の位置として解釈し、新式は総桁数を指す
cout.precision(2);
20.4 -> 20
2.78889 -> 2.8

⑨印刷末尾の0と小数点
cout.setf(ios_base::showpoint); //  cout        ,     6  
20.04 -> 20.4000
cout.precision(2);
20.40 -> 20.
2.78889 -> 2.8

⑩setf()は小数点表示を制御した場合、その他の形式のオプション原型一、
fmtflags setf(fmtflags);
cout.setf(fmtflags);//       

フォーマット定数fmtflags
ios_base::boolalpha //     bool,   true false
ios_base::showbase //    ,  C++    (0,0x)
ios_base::showpoint //        
ios_base::uppercase //  16    ,      E
ios_base::showpos //       +

原型二、
fmtflags set(fmtflags, fmtflags);

1番目のパラメータは、fmtflags値を設定する必要があることを含み、2番目のパラメータは、1番目のパラメータを消去するビットsetf(long,long)を示すパラメータです.2番目のパラメータios_base::basefield対応する最初のパラメータは3つあります:ios_base::dec(基数10)ios_base::oct(基数8)ios_base::hex(基数16)2番目のパラメータios_base::floatfield対応する1番目のパラメータは2つあります:ios_base::fixed(定点カウント法を使用)ios_base::scientific(科学カウント法を使用)補足:C言語におけるprintf()の説明記号、デフォルトのC++モードは%g説明子に対応します.定点表現は%fの説明子に対応する.一方、科学カウント法は%e説明子区分に対応し、3つのカウント法の違いはデフォルトモードである:新式:浮動小数点タイプは6ビットと表示され、精度は総桁数を指し、末尾の0は表示されない.定点表示法、科学カウント法:精度は総桁数ではなく小数点以下の桁数を指す.末尾0の2番目のパラメータios_を表示base::adjustfield最初のパラメータには3つあります:ios_base::left(左揃え)ios_base::right(右揃え)ios_base::internal(シンボルまたはベース接頭辞左揃え、値右揃え)補足:標準制御子
cout << showpoint << fixed << right;

iomanipヘッダファイル#includeで最もよく使われる3つのコントロール:setprecision()設定精度setfill()入力文字setw()フィールド幅2、cinを使用した入力オペレータ関数プロトタイプ
istream & operator>> (int &);
cin >> staff_size;

cin 1)数字2を入力)文字列を受け入れ、スペース、TAB、リターンともにcinを終了する.get() 1)cin.get(ch)は文字を受信するために使用される
char ch; cin.get(ch);

2)cin.get(s,n)は、1行の文字列を受信するために使用される.スペースを受信できるgetlineのように複数の単語を入力できるスペースで区切る
char a[20]; cin.get(a,20);

cin.getline()は、スペースを受信できる文字列を受け入れます.これもcin(s,n)とも注意が必要です
char m[20] = jklkjilj;
cin.getline(m,5);
cout << m << endl; //       jklk          ‘0’

これでcinに直接行くことがわかります.getline()には3つのパラメータがあります.文字列をmに受信し、個数を受信し、終了符を受信する(省略すると'0'または'/n')
char a[20]; cin.getline(a,5);

getline()は、スペースを受信して出力できる文字列を受信し、ヘッダファイルincludeの注意を含む必要があります.getline()はstringストリームに属します.文字列をstring型と定義するだけで十分です.そうしないとistreamストリームのcinしか使えません.getline(m,20)gets()は文字列を受信し、スペースを受信して出力することができるが、ヘッダファイルincludeを追加し、m=gets()と書くことができないことに注意しなければならない.gets(m)getchar()に文字を受信する必要があります.ヘッダファイルincludeが必要であることに注意し、getchar(ch)と書くことはできません.ch=getchar()と書くべきです.getchar()はC言語の関数です.C++も互換性があります.しかし、あまり使いません.
以上をまとめる.私の習慣によれば.C++以降、スペースを入力する必要がある文字に遭遇した場合はchar chを使用します.cin.get(ch)文字列#includegets(str)補足:ストリームはプログラムの出入りのバイトストリームであり、バッファはメモリ中の一時記憶領域であり、プログラムとファイルまたは他の機器との橋渡しである<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<2014.07で終了する.24 23:08
本文のブログのオリジナルの文章、ブログ、同意を得ないで、転載してはいけません.