针对.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. JavaScript学习三

    2019-05-30 20:38:50 逻辑运算符 && || ! !如果对非布尔值取反,则将会把数值变成布尔值,然后再取反 隐式类型转化 为任意的数据类型做两次非运算,既可将其转换成 ...

  2. java的random生成某个范围内的随机数

    import java.util.Random; /** * @author HP * @date 2019/4/16 */ public class randomTest { public stat ...

  3. 【NOIP2018】 游记

    All ended? [day 0] 一点感觉没有,不过翘掉了早上的课(当然还有前三周的课),然后刚想睡一会儿,就被通知要上车了/难受 在车上玩了一会儿早上下的Super Mario(主要是早上刷了一 ...

  4. C - Football

    Problem description Petya loves football very much. One day, as he was watching a football match, he ...

  5. oracle命令行登录(默认用户名和密码)

    oracle数据库安装成功之后会有默认的用户名和密码,之前因为没有整理,每次用的时候都要百度很麻烦,所以现在把这些都整理一下,也方便以后使用: 使用scott用户连接:使用sys用户连接:使用syst ...

  6. 2.0 Linux系统的安装之Fedora安装单系统(2)

    2.0 Linux系统的安装之Fedora安装单系统(2) *Linux系统的安装之Fedora安装单系统 恐怕最好装的系统就是Linux系统了,或者与Windows并列.此篇教程为Fedora的单系 ...

  7. Mysql Event 自动分表

    create table TempComments Like dycomments; 上述 SQL语句创建的新表带有原表的所有属性,主键,索引等. 自动分表怎么做呢? 使用上述语句自动创建分表. 那么 ...

  8. vim之快速跳转

    光棍节啦, 淘东西的闲暇上来发vim旅途第一篇日志. 为什么呢? 因为今天是我媳妇的生日, 我用这种只有我知道的方式来纪念一下. ^_^, 宝宝生日快乐! 开篇先说明日志布局, vim学习记录连载中所 ...

  9. BZOJ 3319: 黑白树 树+并查集+未调完+神题

    Code: #include<bits/stdc++.h> #define maxn 1000003 using namespace std; char *p1,*p2,buf[10000 ...

  10. BZOJ 1060: [ZJOI2007]时态同步 树上问题 + 贪心

    Description 小Q在电子工艺实习课上学习焊接电路板.一块电路板由若干个元件组成,我们不妨称之为节点,并将其用数 字1,2,3….进行标号.电路板的各个节点由若干不相交的导线相连接,且对于电路 ...