c语言中把文件中的数据读入一维数组

一个文件121.txt 有一千个数据,要求将这1000个数排序,并在屏幕打印出第500个
求代码,用文件的操作来做,直接冒泡排序,不用再定义函数,求代码,我的困惑是,不知道如何把1000个数据用fscanf 给读入到一个一维数组中,因为我想用数组来冒泡排序

第1个回答  2012-05-19
/*
作用:得到文件内整数数据的函数(没有限制数据个数)
参数:file_path[in]:文件地址;
result_array[out]:读取得到的整型数据一维数组。
返回值:无。
*/
void read_txt_file ( const char *file_path , int [] result_array)
{
FILE *fp = NULL;
int loop = 0;

if ( file_path == NULL || result_array == NULL ) return ;
fp = fopen ( file_path , "r" );
while ( !feof ( fp ) )
{
fscanf ( fp , "%d" , &(result_array[loop++]) );
}
}

我只给出读取的方法,至于排序和打印输出,应该是你可以完成的。本回答被提问者和网友采纳
第2个回答  推荐于2016-07-14
用字符流读出,即可;
参考如下:
#include <stdio.h>
#include <string.h>
#include <errno.h>
#include <stdlib.h>

int main(void)
{
int malloc_num = 0;
int i = 0;
FILE *fp = NULL;

if((fp = fopen("./aa.txt", "r")) == NULL)
{
fprintf(stderr, "fopen ./aa.txt failed: %s\n", strerror(errno));
exit(0);
}

fscanf(fp, "%d", &malloc_num);

float *ft = (float *)malloc(malloc_num);

for(i = 0; i < malloc_num; i++)
fscanf(fp, "%f", &ft[i]);

for(i = 0; i < malloc_num; i++)
printf("ft[%d] = %f\n", i, ft[i]);

return 0;
}
第3个回答  2012-05-22
如果只求第500个的话 不用冒泡排序的
第4个回答  2012-05-19
设一个计数器1 to 1000 一个个读?
相似回答