C ++で異なるifstreamモードを使用するにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/1611165

  •  05-07-2019
  •  | 
  •  

質問

  1. 参照によると、 ifstream infile(" test.txt"、ifstream :: in); を使用すると、ストリームに対する入力操作が許可されます。しかし、「入力操作」の例は何ですか?
  2. ifstream infile(" test.txt"、ifstream :: in | ifstream :: binary); 複数のフラグを使用する正しい構文ですか?
  3. ifstream :: iso :: に変更すると違いが生じますか?

ありがとう

役に立ちましたか?

解決

  
      
  1. 参照によると、ifstream infile(" test.txt"を使用する場合、   ifstream :: in);入力を許可します   ストリームの操作。しかし、何ですか   "入力の例のいくつか   操作"?
  2.   

入力ストリームがサポートできるすべてを意味するファイルからの読み取り。 istream のメンバー関数を参照してください。通常、フォーマットされた読み取り(>> を使用)とフォーマットされていない読み取り( read を使用)の両方を実行できます。 ifstream は、 char タイプの basic_ifstream テンプレートの特殊化であることを忘れないでください。必要に応じて、たとえばUTF-16でエンコードされたファイルを読み取る場合、別の特殊化( wifstream )を使用するか、特別なロケール(これでロケールの詳細を確認できます。

  
      
  1. はifstream infile(" test.txt"、ifstream :: in | ifstream :: binary);   複数を使用する正しい構文   フラグ?
  2.   

はい。

  
      
  1. ifstream ::をiso ::に変更すると、違いが生じますか
  2.   

いいえ。

他のヒント

ストリーム操作は、抽出<< および挿入>> です。想定して以下を行う場合 file fstream タイプです:

file << 5 << 6.5 << "Hello World!"; // insertion of data (output)
file >> x >> y >> str; // exaction of data (input)

binary stream として stream を処理することもできます。その場合、実際には&quot; stream &quot;のようには見えません。がデータのランダムアクセスを提供します。ネットワークストリームのようにデータが利用できない場合は特に、バイナリモードを使用できない場合があります。挿入と抽出は、ストリームに対する2つの主要な操作です。

ifstream はデフォルトで input stream として作成されます。したがって、この場合、 std :: ios :: in は冗長です。フラグを正しく使用しています。

すべてのストリームは ios から継承します。したがって、フラグは両方の場所で使用できます。 ios から直接取得するか、 fstream から取得できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top