读txt文件的问题
大家好,对于一个存有若干float型数据的txt文件,各数据之间由等长的若干空格隔开,我想把其中从某一位置开始的连续若干数据读入到一个一维数组中,比如读入txt文件中从第5个到第10个数据,请问该如何操作?
谢谢!
程序代码:#include <stdio.h>
#include <stdlib.h>
#include <malloc.h>
void readNum(char* filename, float *numArray,const int begin, const int num);
/**************************************************
** Function: int main(int argc, char** argv)
** Params:
** Return: 0 - 成功
** Author: kennel
** Time: 2012.07.06
** Description:程序入口
***************************************************/
int main(int argc, char** argv)
{
float *Array;
int num; //需要取的数字个数
int firstNum; //从第firstNum个数字取
int i = 0; //验证目标数组存放的数字时,数组下标
scanf("%d %d", &firstNum, &num);
printf("从文本1.txt中的第%d个数开始读%d个数\n", firstNum, num);
Array = (float*)malloc(sizeof(float) * num);//申请数组内存空间
readNum("1.txt", Array, firstNum, num);
printf("验证数组中的值:");
for (; i < num; i++)
{
printf("%f ", Array[i]);
}
free(Array);
scanf("%d", &num);//此句无任何用处,只是为了看终端显示,防止程序一闪消失
return 0;
}
/***********************************************************************************
** Function: void readNum(char* filename, float *numArray,
** const int begin, const int num)
** Params: char* filename - 需要打开的文件名
** float *numArray - 目的数组,将获取的数放入此数组中
** const int begin - 文件filename中第begin个数字
** const int num - 需要从文件filename中取的数字个数
** Return: void
** Author: kennel
** Time: 2012.07.06
** Description:从文件filename中的第begin个数开始读num个数,分别存入数组numArray中
************************************************************************************/
void readNum(char* filename, float *numArray,const int begin, const int num)
{
FILE *fp;
int i = 0;
if ((fp = fopen(filename,"r")) != NULL)
{
if (!feof(fp))
{
for (; i < begin - 1; i++)
{//为了找到第一个数字的位置
fscanf(fp, "%f", &numArray[0]);
//printf("%f ", numArray[0]);
}
printf("\n");
i = 0;
for (; i < num; i++)
{//从找到的数字位置开始的num个数存入数组
fscanf(fp, "%f", &numArray[i]);
//printf("%f ", numArray[i]);
}
}
}
fclose(fp);
}程序在VS2005下编译通过.