次のようなテキスト ファイルがあるとします。 このファイルにはプレーン テキストが含まれています。
ここで、このテキスト ファイルを、文字が等しい「n」個の部分に分割したいと考えています。ユーザーが 3 つの区分を必要としている場合、1.txt、2.txt、および 3.txt をそれぞれ約 8 文字で作成する必要があります。
(このプログラムの次の部分は、これらのファイルを元の状態に再結合することですが、この最初の部分で助けを得ることができれば、自分でそれを行うことができると確信しています)。
この件で私を案内してもらえますか?
使用言語はCです。
void main(int argc, char** argv)
{
int iChunkNo=0;
char cFileName[30];
iChunkNo = atoi(argv[2]);
strcpy(cFileName, argv[1]);
printf("The file will be divided into %d chunks \n", iChunkNo);
FILE* file_read_pointer;
file_read_pointer = fopen(cFileName, "r");
int iCount=0;
char ch;
while (1)
{
ch = fgetc(file_read_pointer);
if (ch == EOF)
break;
++iCount;
}
printf("The number of characters in the file is: %d \n", iCount);
int iCharPerFile = 0;
iCharPerFile = iCount/iChunkNo;
printf("The number of characters per chunk file will be: %d \n", iCharPerFile);
FILE* file_write_pointer;
int j=1;
for(j; j<=iChunkNo; j++)
{
char num[5] = {j};
char ext[4] = {"txt"};
char name[15];
sprintf(name, "%d.%s", j, ext);
FILE* file_write_pointer;
file_write_pointer = fopen(name, "w");
}
int i=0;
for(i; i<iCharPerFile; i++)
{
char temp;
temp = fgetc(file_read_pointer);
//fputc(temp, file_write_pointer);
fprintf(file_write_pointer, "%c", temp);
}
}