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() 是用來讀取回車鍵的,如果沒這一行,輸出的結果一閃就消失了
}