为什么我的代码不能生成超过999个文本文件?

时间:2014-07-18 23:01:38

标签: c text plaintext

代码编译并运行,但是我尝试更改变量cant=2000,但是我希望无法生成2000文件。

代码在这里。

#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <math.h>

//  Usando Preprocesado para manejar las matrices y tener acceso eficiente a memoria
    #define F(i,j) F[i*col +j]  
    #define B(i,j) B[i*col +j]

float randfloat(float min, float max){    
    return ((float) rand() / (float) RAND_MAX);   
}

int i, j, tstep, fil, col, cant;

int main(int argc, char *argv[]){

    char nombre_b[50] ;     //= "";
    char nombre_f[50] ;     //= "";      
    FILE *puntero_f;
    FILE *puntero_b;

    fil = 2;
    col = 2;
    cant = 1000;

    int tam = fil*col;
    float *F = calloc(tam,sizeof(float));
    float *B = calloc(tam,sizeof(float));

    //srand((unsigned)time(NULL));

    int archi = 0;
    for (tstep=0; tstep<cant; tstep++){

        sprintf(nombre_f, "Forward%d.txt", tstep);
        sprintf(nombre_b, "Backward%d.txt", tstep);
        puntero_f = fopen(nombre_f, "a+");
        puntero_b = fopen(nombre_b, "a+");

        for(i = 0; i<fil; i++){
            for(j = 0; j<col; j++){
                F(i,j) = randfloat(0.0f, 1.0f);
                B(i,j)  = randfloat(0.0f, 1.0f);

                if(tstep==archi){
                    fprintf(puntero_f,"%f ", F(i,j));
                    fprintf(puntero_b,"%f ", B(i,j));
                }
            }
            if(tstep==archi){
                fprintf(puntero_f,"\n");
                fprintf(puntero_b,"\n");
            }
        }
        archi++;
        fclose(puntero_f);
        fclose(puntero_b);
    }

    return 0;
}

2 个答案:

答案 0 :(得分:1)

问题:为什么我的代码不能生成超过999个文本文件?

答案:问题代码在执行后会生成2000个文件(大于999)。

Forward0到Forward999,Backward0到Backward999。

限制因素:

cant = 1000;

for (tstep=0; tstep<cant; tstep++)

要生成超过0-999(x2)个文件,请将cant的值更改为您希望生成的文件数。


也许您希望生成后缀为1到2000的文件?如果是,请更改:

cant = 2000;

for (tstep=1; tstep<=cant; tstep++)

答案 1 :(得分:0)

...借口

我不知道原因,但今天我打开电脑,运行相同的代码,工作正常很奇怪。

我相信与Rudy相同,但是muy父目录位于主文件夹中,生成的名称文件超出S.O的限制是不可能的,但我会建议您将来的工作。