小编Anu*_*rma的帖子

为什么 fprintf 即使在刷新后也没有打印文件中的完整数据?

我正在使用筛法将所有素数打印到文件中。我的代码如下:

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

int main(){
    FILE* file = fopen("primeList.txt","w+");
    bool* x;
//  long upLimit=100;
    long upLimit=2000000000;    
    x=(bool*) calloc(1,upLimit);
    long i=upLimit;
    while(i--){
        *(x+i)=true;
    }
    *(x+1)=false;
    *(x+2)=true;
    *(x+3)=true;
    int cnum=2;
    int count=0;
    while(cnum<upLimit){
        if(*(x+cnum)){
            fprintf(file, "%d\n",cnum);
            count++;
            int compNum=cnum*2;
            while(compNum<upLimit){
                *(x+compNum)=false;
                compNum+=cnum;
            }
        }
        cnum+=1;
    }
    fprintf(file, "Count is : %d\n", count);
    fflush(file);
    fclose(file);
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

outfile的最后几行如下:

在此输入图像描述

我期望素数计数是最后一行。请帮忙解决这个问题。提前致谢。

c printf

0
推荐指数
1
解决办法
81
查看次数

标签 统计

c ×1

printf ×1