首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >fwrite => fprintf

fwrite => fprintf
EN

Stack Overflow用户
提问于 2011-06-21 21:51:41
回答 5查看 2.2K关注 0票数 1

我在将行fwrite(tmp_array, sizeof(int), num, f);改为fprintf时遇到了问题。

有没有人能帮我看看?

代码语言:javascript
复制
 void generate_random_sorted_file(const char *file_name, int num)
 {
     FILE *f = fopen(file_name, "wb");
     if (f==NULL) 
     {
         printf("could not open %s\n", file_name);
         return;
     }

     int *tmp_array = calloc(num, sizeof(int));
     int i;

     for (i=0; i<num; i++)
     tmp_array[i]=rand();

     qsort (tmp_array, num, sizeof(int), compare); /* sorts the array */
     fwrite(tmp_array, sizeof(int), num, f);

     fclose(f);
 }
EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-06-21 21:55:04

fprintf将把你的整数数组写成文本,如果这是你想要的,可以这样做

代码语言:javascript
复制
int i;
for(i = 0; i < num; i++)
  fprintf(f,"%d ",tmp_array[i]);
票数 2
EN

Stack Overflow用户

发布于 2011-06-21 21:53:59

代码语言:javascript
复制
for (i=0; i<num; i++)
    fprintf(f, "%d ", tmp_array[i]);

如果您想以不同的方式格式化它,您可以这样做,但这是最基本的。例如,每10个项目添加换行符:

代码语言:javascript
复制
for (i=0; i<num; i++)
{
    fprintf(f, "%d ", tmp_array[i]);
    if ((i+1) % 10 == 0)
        fprintf(f, "\n");
}

或者,您可能需要制表符分隔符:

代码语言:javascript
复制
fprintf(f, "%d\t", tmp_array[i]);
票数 0
EN

Stack Overflow用户

发布于 2011-06-21 21:54:49

您将不得不替换fwrite(...)使用

代码语言:javascript
复制
for(i=0; i < num; i++)  
fprintf( f, "%d", tmp_array[i] );  

但是你为什么要这么做呢?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6426413

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档