こんにちわ。
下のプログラムはファイルを2等分するものなのですが、
今度は下のを参考にコマンドラインで入力したn個の数に分割したいと思っています(n
等分)。が、n個の出力ファイルを作るなど、なかなかうまくいきません(T_T)
何かいい方法はないでしょうか?? よろしくお願いしますm(__)m
#include<iostream>
#include<fstream>
using namespace std;
int main (int argc,char *argv[])
{
ifstream in(argv[1],ios::in | ios::binary);
if(!in){
cout << Cannot open file.\n;
return 1;
}
ofstream out1(argv[2],ios::out | ios::binary);
if(!out1){
cout << Cannot open file.\n;
return 1;
}
ofstream out2(argv[3],ios::out | ios::binary);
if(!out2){
cout << Cannot open file.\n;
return 1;
}
char ch;
int h,i;
long a;
in.seekg(0,ios::end);
a=in.tellg();
h = a /2;
cout << 入力ファイルのサイズは << a << byteです。\n;
in.seekg(0,ios::beg);
for(i=0; i<h; ++i){
in.get(ch);
out1.put(ch);
}
for(i=h; i<a; ++i){
in.get(ch);
out2.put(ch);
}
in.close();
out1.close();
out2.close();
return 0;
}
どっかの課題見たいな内容だけど?
何が、どう、うまくいかないのかな?
a=元サイズ / n
for(x=1;x<n;x++) {
sprintf(file_nm[x],out%3.3d.dat,x);
ofstream out1(file_nm[x],ios::out | ios::binary);
aの分、読み込んで書き込む
out1.close();
}
in.close();
こんな感じじゃないの?
質問者へ。
↑のサンプル、変数「file_nm」の型は何でしょう?
ここ、結構重要かも、なので注意してくださいね。