浪客的小猪窝

无他,唯手熟尔!

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <malloc.h>
 4 
 5 void readNum(char* filename, float *numArray,const int begin, const int num);
 6 /**************************************************
 7 **    Function:    int main(int argc, char** argv)
 8 **    Params:        
 9 **    Return:        0 - 成功
10 **    Author:        kennel
11 **    Time:        2012.07.06
12 **    Description:程序入口
13 ***************************************************/
14 int main(int argc, char** argv)
15 {
16 
17     float *Array;
18     int num;        //需要取的数字个数
19     int firstNum;    //从第firstNum个数字取
20     int i = 0;        //验证目标数组存放的数字时,数组下标
21 
22     scanf("%d %d", &firstNum, &num);
23     printf("从文本1.txt中的第%d个数开始读%d个数\n", firstNum, num);
24 
25     Array = (float*)malloc(sizeof(float) * num);//申请数组内存空间
26     readNum("1.txt", Array, firstNum, num);        
27     
28     printf("验证数组中的值:");
29     for (; i < num; i++)
30     {
31         printf("%f ", Array[i]);
32     }
33     free(Array);
34 
35     scanf("%d", &num);//此句无任何用处,只是为了看终端显示,防止程序一闪消失
36 
37     return 0;
38 }
39 /******************************************************************************
40 **    Function:    void readNum(char* filename, float *numArray,
41 **                              const int begin, const int num)
42 **    Params:        char* filename  - 需要打开的文件名
43 **                float *numArray - 目的数组,将获取的数放入此数组中
44 **                const int begin - 文件filename中第begin个数字
45 **                const int num   - 需要从文件filename中取的数字个数
46 **    Return:        void
47 **    Author:        kennel
48 **    Time:        2012.07.06
49 **    Description:从文件filename中的第begin个数开始读num个数,分别存入数组numArray中
50 *******************************************************************************/
51 void readNum(char* filename, float *numArray,const int begin, const int num)
52 {
53     FILE *fp;
54     int i = 0;
55 
56     if ((fp = fopen(filename,"r")) != NULL)
57     {
58         if (!feof(fp))
59         {
60             for (; i < begin - 1; i++)
61             {//为了找到第一个数字的位置
62                 fscanf(fp, "%f", &numArray[0]);
63                 //printf("%f ", numArray[0]);
64             }
65             printf("\n");
66             i = 0;
67             for (; i < num; i++)
68             {//从找到的数字位置开始的num个数存入数组
69                 fscanf(fp, "%f", &numArray[i]);
70                 //printf("%f ", numArray[i]);
71             }
72         }
73     }
74 
75     fclose(fp);
76 }

1.txt中内容:

4.2   6.3      7.6

9.9

8.23

运行:

3 2

从文本1.txt中的第3个数开始读2个数

验证数组中的值:7.600000 9.900000

posted on 2012-07-09 23:43  BlackKylin  阅读(433)  评论(0)    收藏  举报