私は列の形式で約300個の数値(浮動小数点、負の陽性)を含むファイルnumbers.datを持っています。目的はまずnumbers.datに300個の数字を入力し、毎回100個の数字を別のファイル、例えばn1.datに抽出することです。 2番目のファイルn2.datは、numbers.datから取得したファイルの3つのサブセットについて、numbers.datから次の100個の番号を取得します。最後に読み込まれた100番目の番号の場所がどのように考慮されるのか理解できず、次のブロックのファイルの読み込みと取り出しは、previosが取り出した番号の後に行われます。Cのテキストファイルから数値のブロックを読み取る方法
ガンナーが提供するソリューション試す:
FILE *fp = fopen("numbers.dat","r");
FILE *outFile1,*outFile2,*outFile3;
int index=100;
char anum[100];
while(fscanf(fp,"%s",anum) == 1)
{
if(index==100)
{
// select proper output file based on index.
fprintf(outFile1,"%s",anum);
index++; }
if(index >101)
{
fprintf(outFile2,"%s",anum);
index++; }
}
を、問題が一つだけのデータが書き込まれているです。正しいプロセスは何でしょうか?
、たとえば、ファイル '番号を投稿してください.dat、n1.dat、n2.dat、n3.dat'。 300サンプルの代わりに15サンプルを使用すれば十分です。 –
@eznme:提供されたコードは@Gunnerによって甘受されています。ここで、outFile1はn1.dat、outFile2はn2.dat、outFile3はn3.datです。私はこの記法に固執して、そうした答えに関連しやすくしました。この問題は、outFile1とoutFile2に100個の数字の代わりに1個の数字が入っていることです。インデックスが曖昧であり、ループが機能していません。また、オープンとクローズのような通常の予備ファイル操作は実行されていますが、上記には含まれていないことに注意してください。 – SKM