我在将行fwrite(tmp_array, sizeof(int), num, f);改为fprintf时遇到了问题。
有没有人能帮我看看?
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);
}发布于 2011-06-21 21:55:04
fprintf将把你的整数数组写成文本,如果这是你想要的,可以这样做
int i;
for(i = 0; i < num; i++)
fprintf(f,"%d ",tmp_array[i]);发布于 2011-06-21 21:53:59
for (i=0; i<num; i++)
fprintf(f, "%d ", tmp_array[i]);如果您想以不同的方式格式化它,您可以这样做,但这是最基本的。例如,每10个项目添加换行符:
for (i=0; i<num; i++)
{
fprintf(f, "%d ", tmp_array[i]);
if ((i+1) % 10 == 0)
fprintf(f, "\n");
}或者,您可能需要制表符分隔符:
fprintf(f, "%d\t", tmp_array[i]);发布于 2011-06-21 21:54:49
您将不得不替换fwrite(...)使用
for(i=0; i < num; i++)
fprintf( f, "%d", tmp_array[i] ); 但是你为什么要这么做呢?
https://stackoverflow.com/questions/6426413
复制相似问题