读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下编译通过.