C++のIO操作


1 cin  cout cin.get() cin.get(ch)の戻り値
(1)cin,coutは言うまでもなくiostreamオブジェクトを返すため,このように使用できる.
cin >> var1 >> var2 >>var3;
cout << var1 << var2 <<var3<<endl;

 
cin.get()パラメータがない場合、戻り値は整数であるため、通常はこのように使用されます.
while((ch=cin.get()) != EOF)
{
      cout << ch;
}

 
cin.get(ch)世代パラメータの場合もiostreamオブジェクトを返すのでcinを用いることができる.get(a).get(b).get(c);
 
2 cin.get(buffer, num, terminate)  cin.getline(buffer,num,terminate)の違い
注意:terminateは一般的に「
両方とも、1行の文字を読み出すたびに、ternimateで指定された文字の終了に遭遇したり、num-1を超える文字の数で終了したりします.違いはcinです.getはterminateをバッファに残すので、次に読む最初の文字はterminate文字で、逆にcin.getline()は、バッファ内のterminate文字を破棄します.
#include <iostream>
using namespace std;
int main()
{
   char stringOne[255];
   char stringTwo[255];
   cout << “Enter string one:”;
   cin.get(stringOne,255);
   cout << “String one: “ << stringOne << endl;
   cout << “Enter string two: “;
   cin.getline(stringTwo,255);
   cout << “String two: “ << stringTwo << endl;
   cout << “

Now try again...
”; cout << “Enter string one: “; cin.get(stringOne,255); cout << “String one: “ << stringOne<< endl; cin.ignore(255,’
’); cout << “Enter string two: “; cin.getline(stringTwo,255); cout << “String Two: “ << stringTwo<< endl; return 0; }

 
入出力結果を見てください.
Enter string one:once upon a time
String one: once upon a time
Enter string two: String two:
Now try again...
Enter string one: once upon a time
String one: once upon a time
Enter string two: there was a
String Two: there was a

 
3つの比較的有用な関数:peek(),putback()およびignore()
 
cin.peek(ch);無視文字ch
cin.putback(ch);現在読み込まれている文字をchに置き換える
cin.ignore(num, ch); 現在の文字からnum文字を無視したり、ch文字に出会ったりして、ch文字をなくします.
#include <iostream>
using namespace std;
int main()
{
   char ch;
   cout << “enter a phrase: “;
   while ( cin.get(ch) != 0 )
   {
      if (ch == '!')
         cin.putback('$');
      else
         cout << ch;
      while (cin.peek() == '#')
         cin.ignore(1,'#');
   }
   return 0;
}

 
入出力結果:
enter a phrase: Now!is#the!time#for!fun#!
Now$isthe$timefor$fun$

 
5ファイル入出力
fstreamには、ファイルのステータスを確認する関数がいくつかあります.
eof()はtrueを返しiostreamオブジェクトがEOFに遭遇した場合
本文はCSDNブログから来て、転載して出典を明記してください:http://blog.csdn.net/ustc_dylan/archive/2009/12/25/5077984.aspx