Re: [問題] 讀取檔案內的資料,稍做修改,再輸出成 …
你想要的輸出是
假設N=5
輸出:
a1[b1]
a2[b2]
a3[b3]
a4[b4]
a5[b5]
如果是的話,以下是我的想法,參考看看囉^^
#include<string>
#include<fstream>
string in = "abc.txt";
string s = " " ;
string s_sub = " " ;
int N = 0 ;
int M = 0 ;
//讀檔 不打算全部讀完 只要抓出 N、M 即可
ifstream fin;
fin.open( in.c_str() );
if( !fin ) cout << " File Error!!" << endl;
while( !fin.eof() )
{
fin >> s ;
N = atoi(s.c_str()); //字串轉整數
fin >> s ;
s_sub = s.substr(0,1); // 切字
while((s_sub == "a" )||(s_sub == "b"))
{
fin >> s ;
s_sub = s.substr(0,1);
}
M = atoi(s.c_str()); // 找到M就停止讀檔
break;
}
fin.close();
ofstream fout("abc_out.txt");
for(int i =0; i<N; i++)
{
fout << "a" << i+1 << "[b" << i+1 << "]" << endl;
}
for(int i =0; i<M; i++)
{
fout << "c" << i+1 << "[d" << i+1 << "]" << endl;
}
※ 引述《Zoxge (Zoxge)》之銘言:
: 遇到的問題: (題意請描述清楚)
: 讀取的檔案主要是這樣的格式:
: N
: a1 b1
: a2 b2
: .
: .
: .
: aN bN
: M
: c1 d1
: c2 d2
: .
: .
: .
: cM dM
: (N與M都是"正整數")
: 現在要讀取檔案之後,把內容稍微做修改
: N的部份要寫成aN[bN]
: M的部份要寫成cM{dM}
: 然後輸出成另一個檔案
: 檔案的輸入與輸出方面沒有問題
: 小弟的主要問題在於內容修改的部份
: 請見有問題的code:這個部份
: 開發平台: (例: VC++ or gcc/g++ or Dev-C++, Windows or Linux)
: dev-C++
: 有問題的code: (請善用置底文標色功能)
: 目前小弟想到是用ifstream與ofstream來做
: 在int main()這個function裡面:
: string s;
: ifstream fin("abc.in");
: ofstream fout("abc.out");
: while(!fin.eof())
: {
: getline(fin,s);
: fout << s << endl;
: }
: 但是用getline的話是一次讀一行
: 好像沒辦法把格式修改成想要的aN[bN] cM{dM}這樣子
: 而且我想應該要有個機制分別讀取N和M,然後分別用for迴圈來run
: 感覺這個問題對程式寫手來說應該很容易
: 但是小弟的C++功力實在很淺,想不出來程式到底該怎麼寫
: 麻煩板上高手解惑了
: 感激不盡啊!!
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.101.39
推
04/12 13:10, , 1F
04/12 13:10, 1F
→
04/12 13:11, , 2F
04/12 13:11, 2F
→
04/12 13:12, , 3F
04/12 13:12, 3F
→
04/12 13:13, , 4F
04/12 13:13, 4F
→
04/12 13:14, , 5F
04/12 13:14, 5F