get関数

6485 ワード

get関数
文書ディレクトリ
  • get関数
  • 1. パラメータなしget関数
  • 2. パラメータ付きget関数
  • 3. 3つのパラメータを持つget関数
  • 1.パラメータなしget関数
    cin.get()
    指定した入力ストリームから空白文字、スペース、改行、tabなどを含む文字を抽出し、関数の戻り値が読み込まれた文字です.入力ストリームのファイル終端に遭遇すると、関数値はファイル終端フラグEOF(End Of File)を返し、一般的にはEOFを-1で表し、0や正の値ではなく-1で表し、文字のASCIIコードと混同されないことを考慮しているが、C++システムによって使用されるEOF値が異なる可能性がある.
    #include 
    using namespace std;
    int main( )
    {
       int c;
       cout<<"enter a sentence:"<<endl;
       while((c=cin.get())!=EOF)
          cout.put(c);
       return 0;
    }
    

    実行結果
    enter a sentence: I study C++ very hard.↙(1行の文字を入力)I study C++very hard.(その行文字を出力)^Z↙(プログラム終了)
    C言語のgetchar関数とストリームメンバー関数cin.get()の機能は同じで、C++はCのこのような使い方を保留して、getcharを使うことができます© キーボードから1文字を読み込んでcに割り当てます.
    2.パラメータを持つget関数
    cin.get(ch) //ch
    入力ストリームから1文字を読み出し、文字変数chに付与する.読み取りに成功した場合、関数はtrue(真)を返し、失敗した場合(ファイルの終端に遭遇した場合)、関数はfalse(偽)を返します.例13.6は以下のように書き換えることができる.
    #include 
    using namespace std;
    int main( )
    {
       char c;
       cout<<"enter a sentence:"<<endl;
       while(cin.get(c))  //            c,      ,cin.get(c)  
       {cout.put(c);}
       cout<<"end"<<endl;
       return 0;
    }
    

    3.3つのパラメータを持つget関数
    cin.get(文字配列、文字個数n、終端文字)cin.get(文字ポインタ、文字個数n、終端文字)
    入力ストリームからn−1文字を読み出し、指定された文字配列(または文字ポインタが指す配列)に割り当て、n−1文字を読み出す前に指定された終了文字に遭遇した場合、読み出しを早期に終了する.読み取りに成功した場合、関数はtrue(真)を返し、失敗した場合(ファイルの終端に遭遇した場合)、関数はfalse(偽)を返します.
    #include 
    using namespace std;
    int main( )
    {
       char ch[20];
       cout<<"enter a sentence:"<<endl;
       cin.get(ch,10,'
    '
    );// cout<<ch<<endl; return 0; }

    実行結果
    enter a sentence: I study C++ very hard.↙ I study C
    入力ストリームには22文字があるが、get関数で指定されたnが10であるため、n−1文字(すなわち9文字)を読み出し、文字配列chの上位9要素に付与する.n-1を指定すると、なぜ9文字しか読めないのでしょうか.文字列が格納されているため、9文字の後に文字列終了フラグを追加し、実際に配列に格納されているのは10文字です.
    get関数の3番目のパラメータは省略できますが、デフォルトは''です.次の2行は等価です.
    cin.get(ch,10,’’); cin.get(ch,10);
    終了文字は、他の文字でも使用できます.のように
    cin.get(ch,10,‘x’);
    文字’x’に遭遇した場合の読み出しを停止する