针对.txt文档的大量有规律数据,譬如100行8列的数据将其读取到二维数组(矩阵)中,留作之后的数据处理。

改程序通过宏定义的方法来确定将要读取程序的行数和列数,将数据读取到二维数组data[100][8]中。

同一时候增加一个測试函数read(),功能是能够获取txt文档大量数据的行数,本项目中待定使用。

程序例如以下:

#include<stdio.h>

#include<stdlib.h>

/*

为了以后特定行数的读取,採用宏定义的方法来确定行数

程序中read()读取该文件的行数,当未知文件行数时可使用返回值做全局变量

*/

#define N 115   //行

#define L 8       //列





const char file_name[50] = "d:\\dat.txt";

void read(FILE *fp)

{    int row=0;

char mid;

while(!feof(fp))

     {   

           mid=fgetc(fp); //从txt文本中读取一个字符赋值给mid

           if(mid=='\n') //假设这个字符为换行符

            row++; //记录txt数据行数

      }

row++;
//最后一行没有换行符

    printf("行数为%d\n",row);

    rewind(fp); //回文件起始位置 

}

int main(int argc, char *argv[])

{

FILE *fp;

double data[N][L] = {0.0};   //二维数组

int index[N] = {0};
//二维数组行下标

double temp;  

int i, j;

int count = 0;  //计数器,记录已读出的浮点数

if((fp=fopen(file_name, "rb")) == NULL) {

printf("请确认文件(%s)是否存在!\n", file_name);

exit(1);

}

       read(fp);     //读取行数

while(1==fscanf(fp, "%le", &temp)) //lf,le都能够。但别的都不能够,%e也不行

{

data[(index[count%L])++][count%L] = temp;

count++;

}

fclose(fp);   //关闭句柄

/******处理数据****************/

for(i=0;i<N;i++)

{   printf("第%d行数据:\n",i+1);

for(j=0;j<L;j++)

{

 printf("%5.3le ", data[i][j]);//.16f能够,le时以科学计数法显示

}

printf("\n");

}



return 0;

}

C语言读取文件大量数据到数组的更多相关文章

  1. R语言--读取文件(数据输入)

    1 数据的输入 1.1 键盘输入 首先新建一张空表: dat<-data.frame(age=numeric(0),gender=character(0),weight=numeric(0)) ...

  2. 关于C语言读取文件时候多读一行

    梗概:为什么C语言读取文件到结构体时为什么整天多读一行?一切都是[!feof(fp)]的错!!! while (!feof(fp)) { fgets(buffer, , fp); j++; } 像这样 ...

  3. R语言读取文件

    1.R语言读取文件,文件类型为.txt 直接使用read.table()即可,若不知道当前的工作目录,可以使用函数getwd()来查看 2.R语言读取文件,文件类型为.xlsx 方法一:可以把excl ...

  4. C语言 读取文件中特定数据

    //读取文件数据 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> struct jia ...

  5. PHP —— 读取文件到二维数组

    转自:PHP读取自定义ini文件到二维数组 读取文件,可以使用file_get_contents,file,parse_ini_file等,现在有一个需求,需要读取如下格式的文件: [food] ap ...

  6. PHP读取文件夹数据,并分页

    protected function read_all ($dir){ // 确保目录有权限进入 if(!is_dir($dir)) return false; $handle = opendir($ ...

  7. 类似于c语言读取文件进行解析

    $log_file_name = 'D:/static/develop/kuai_zhi/acagrid.com/public/Logs/'.date('Ym').'/'.date('d').'_er ...

  8. R语言读取matlab中数据

    1. 在matlab中将数据保存到*.mat 文件夹 save("data.mat","data","label")#将data和label ...

  9. LinuxC语言读取文件,分割字符串,存入链表,放入另一个文件

    //file_op.c #include <string.h> #include <stdio.h> #include <stdlib.h> struct info ...

随机推荐

  1. [Swift]LeetCode1071.字符串的最大公因子 | Greatest Common Divisor of Strings

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  2. Integer应该用==还是equals

    问题引出:“Integer应该用==还是equals” 讨论这个问题之前我们先放一段代码 public static void main(String[] args) { Integer a1 = 2 ...

  3. python2.X现在不能安装Django了:Collecting django Using cached Django-2.0.tar.gz

    使用pip安装django2: pip install django 报错: Collecting django  Using cached Django-2.0.tar.gz    Complete ...

  4. mysql 导入数据库时,报错1840的解决方法

    1.现象 在mysql用sql文件导入数据库时,提示ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @ ...

  5. react基础篇五

    再看JSX 本质上来讲,JSX 只是为 React.createElement(component, props, ...children) 方法提供的语法糖.比如下面的代码: <MyButto ...

  6. webapi部署到IIS 404错误

    环境:win2008r2+IIS 解决方案: 添加一个映射 可执行文件地址(根据系统决定64位可32位): C:\Windows\Microsoft.NET\Framework64\v4.0.3031 ...

  7. https ssl 总结

    主要工作: 1)算法协商: 2)密钥交换: 3)身份认证: 4)数据通信: 1.2.3主要使用握手协议: 4使用记录协议. SSL协议可分为两层:记录协议.握手协议 SSL Record Protoc ...

  8. DD打卡

    一.安装逍遥安卓模拟器 二.安装钉钉 三.设置当前GPS座标 位置模拟器: 链接: https://pan.baidu.com/s/1TC5QkrGAgHOJWtzJnX6vhA 提取码: bpu8 ...

  9. scrapy-redis让redis不止使用db0

    废话不多说,直接在  custom_settings 设置即可 代码: class MySpider(RedisSpider): """Spider that reads ...

  10. C#datetime判断日期输入是否正确

    //7.输入年月日,看看格式是否正确.利用DateTime. //(1) //DateTime dt=DateTime.Now; //Console.Write("请输入现在的年:" ...