1. 程式人生 > >c++逐行讀取寫入txt檔案的方法

c++逐行讀取寫入txt檔案的方法

檔案開啟模式:

ios::in            讀
ios::out           寫
ios::app           從檔案末尾開始寫
ios::binary        二進位制模式
ios::nocreate      開啟一個檔案時,如果檔案不存在,不建立檔案。
ios::noreplace     開啟一個檔案時,如果檔案不存在,建立該檔案
ios::trunc         開啟一個檔案,然後清空內容
ios::ate           開啟一個檔案時,將位置移動到檔案尾

檔案指標位置在c++中的用法:

ios::beg   檔案頭
ios::end   檔案尾
ios::cur   當前位置
例子:
file.seekg(0,ios::beg);   //讓檔案指標定位到檔案開頭
file.seekg(0,ios::end);   //讓檔案指標定位到檔案末尾
file.seekg(10,ios::cur);   //讓檔案指標從當前位置向檔案末方向移動10個位元組
file.seekg(-10,ios::cur);   //讓檔案指標從當前位置向檔案開始方向移動10個位元組
file.seekg(10,ios::beg);   //讓檔案指標定位到離檔案開頭10個位元組的位置

常用的錯誤判斷方法:

good()   如果檔案開啟成功
bad()   開啟檔案時發生錯誤
eof()    到達檔案尾

例項:

一、寫入檔案

#include <iostream>
#include <fstream>
using namespace std;

void main()
{
    ofstream in;
in.open("com.txt",ios::trunc); //ios::trunc表示在開啟檔案前將檔案清空,由於是寫入,檔案不存在則建立
int i;
char a='a';
for(i=1;i<=26;i++)//將26個數字及英文字母寫入檔案
{
   if(i<10)
   {
    in<<"0"<<i<<"\t"<<a<<"\n";
    a++;
   }
   else
   {
    in<<i<<"\t"<<a<<"\n";
    a++;
   }
}
in.close();//關閉檔案
}

開啟com.txt,效果如下:


二、讀取檔案

上面僅僅是將文字寫入檔案,並沒有讀取出來。

以下為讀取檔案的一種方法:將檔案每行內容儲存到字串中,再輸出字串

#include <iostream>
#include <fstream>
using namespace std;

void main()
{
char buffer[256];
fstream out;
out.open("com.txt",ios::in);
cout<<"com.txt"<<" 的內容如下:"<<endl;
while(!out.eof())
{
   out.getline(buffer,256,'\n');//getline(char *,int,char) 表示該行字元達到256個或遇到換行就結束
   cout<<buffer<<endl;
}
out.close();
cin.get();//cin.get() 是用來讀取回車鍵的,如果沒這一行,輸出的結果一閃就消失了
}