ofstream ifstreamファイル操作【回転】

6043 ワード

c++の出力と入力ガイド画面とキーボードのカテゴリ宣言には再ヘッダーファイルが含まれ、ディスククラスファイルのI/O宣言にはヘッダーファイルが含まれます.
入力および出力フォーマット:
ディスクofsteam識別ワード(「ファイル名」)に出力
ディスクからファイルifsteam識別語を読み込む(「ファイル名」)
例:
ofstream outfile("data.txt");//ディスクに書き込むdata.txt中
入出力のフォーマット:
1整数データの入出力
整数データは再ディスクに格納され、各文字は1バイトずつ占められます.
例:
#include
#include
#inlude
void main()
{
  ofstream outfile("data.txt");//書き込みファイル
  for(int i=0;i<10;i++)
   outfile<
  cout<<"ok,press a key!";
gerch(); }
プログラム実行後に手帳で開くとデータが表示されます
0 1 2 3 4 5 6  7 8 9
同じ読み込みファイル文は次のとおりです.
int data;
ifstream infile("data.txt");
for(int i=0;i<10;i++)
{
  infile>>data ;//データを読むときは、データ間にスペースがあるので完全に読み取ることができます.
cout<
}
2文字データの入力
文字の出力方式はput(ch)を格納文,読み出し文をget(ch)とする.
例:
char str[]="hello this is a c++ programe!/n"
                   "i know this difference/n"
                    "and mocive";
ofstream outfile ("data.txt");
for(int i=0;i
outfile.put(str[i]);
読み込み:
char ch;
ifstream infile("data.txt");
while(infile)
{
infile.get(ch);
cout<
}
getch();
}
3文字列データの入力
データが多い場合は読み書き速度が速く、入力時は行全体に改行記号を付けて1回書き込みます.読み出し時に文getline(buffer,max)で行全体のデータを読み出し、改行に遭遇するまで各行の末尾の/nは読み込まないので、出力時に改行記号を付ける必要があります.そうしないとデータが接続されます.
例:
ofstream outfile("strdata.txt");
outfile<<"use your vote/n";
outfile<<"ouse your weise/n";
読み込み:
const MAX=80;
char buffer[MAX];
ifstream infile("strdata.txt");
while(infile)
{
  infile.getline(buffer,MAX);
cout<
}                   
4浮動小数点数
浮動小数点数は小数点があるので、データを格納するときは整数と同じで、データごとにスペースを1つ加えるだけで隣接するデータを区切ることができます
6バイナリファイル
上記のフォーマットファイルはハードディスク(HDD)コントロールを占有しており、バイナリストレージを採用すれば多くのコントロールを節約できます.write,read()を使用して格納および読み取りを行います.
ofstream識別字(「ファイル名」,ios::binary);
write(書き込みアドレス、書き込みサイズ)
ifstream識別字(「ファイル名」,ios:binary);
识别字read(読み取りアドレス、読み取りサイズ);
例:infile.read((char*)buffer,sizeof(データ型);
ファイルを閉じる
识别字close();
例:
ofstream outfile("data.dat",ios::binary);
for(int i=0;i<100;i++)
{
   n[0]=i+1;
  outfile.write((Char*)n,sizeof(int));//変数と配列を例にとることもできます
//  outfile.write((Char*)&i,sizeof(int));iは変数
//outfile.write((Char*)n,sizeof(int));nは配列
}
outfile.close();
ifstream inifile("data.dat",ios:binary);
for(i=0;i<100;i++)
{ inifile.read((Char*)n,sizeof(int);
cout<
}
7ランダムアクセスファイル
ファイルは自由に読み取ることができ、読み出した後に更新することができ、更新後にソースファイルに保存することができます.fstream  file ;
file.Open(「ファイル名」、アクセスモード);
file.open("x.dat",ios::app|ios::in|ios::out|ios::binary);
inファイル入力を開くかifstreamを読み込む
outファイル出力を開くかofstreamに書き込む
ateファイルの末尾から書き込みまたは読み出しを開始する
appファイルの末尾に追加
Aruncファイルが存在する場合は、その長さを0に設定します.
binaryバイナリファイルを開く
バイナリファイルには、現在のデータのファイル内の位置を指すポインタがあります.このファイルポインタは一般的なポインタ変数とは異なり、純粋なインジケータにすぎません.
関数の説明
seekg()
seekg(0)ポインタをファイルの一番前に移動
seekg(0,ios::cur);現在のポインタを0とする
seekg(0,ios::end);ファイルの最後にポインタを移動し、fileに合わせる.tellg()はファイルのサイズを求めることができますbytes
次の2つの操作は、ファイルが閉じてから使用する必要があります.
remove(「ファイル名」);このファイルを削除する
rename(「古いファイル名」,「新しいファイル名」);
#include 
    

   
#include 
    

   
using namespace std; 
 
int main() 
{ 
  int n[5] = {1, 2, 3, 4, 5}; 
  register int i; 
 
  ofstream out("test", ios::out | ios::binary); 
  if(!out) { 
    cout << "Cannot open file./n"; 
    return 1; 
   } 
 
  out.write((char *) &n, sizeof n); 
 
  out.close(); 
 
  for(i = 0; i <5; i++) // clear array 
    n[i] = 0; 
 
  ifstream in("test", ios::in | ios::binary); 
  if(!in) { 
    cout << "Cannot open file./n"; 
    return 1; 
  } 
 
  in.read((char *) &n, sizeof n); 
 
  for(i = 0; i <5; i++) // show values read from file 
    cout << n[i] << " "; 
 
  in.close(); 
 
  return 0; 
}