C语言读取文件大量数据到数组
针对.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语言读取文件大量数据到数组的更多相关文章
- R语言--读取文件(数据输入)
1 数据的输入 1.1 键盘输入 首先新建一张空表: dat<-data.frame(age=numeric(0),gender=character(0),weight=numeric(0)) ...
- 关于C语言读取文件时候多读一行
梗概:为什么C语言读取文件到结构体时为什么整天多读一行?一切都是[!feof(fp)]的错!!! while (!feof(fp)) { fgets(buffer, , fp); j++; } 像这样 ...
- R语言读取文件
1.R语言读取文件,文件类型为.txt 直接使用read.table()即可,若不知道当前的工作目录,可以使用函数getwd()来查看 2.R语言读取文件,文件类型为.xlsx 方法一:可以把excl ...
- C语言 读取文件中特定数据
//读取文件数据 #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> struct jia ...
- PHP —— 读取文件到二维数组
转自:PHP读取自定义ini文件到二维数组 读取文件,可以使用file_get_contents,file,parse_ini_file等,现在有一个需求,需要读取如下格式的文件: [food] ap ...
- PHP读取文件夹数据,并分页
protected function read_all ($dir){ // 确保目录有权限进入 if(!is_dir($dir)) return false; $handle = opendir($ ...
- 类似于c语言读取文件进行解析
$log_file_name = 'D:/static/develop/kuai_zhi/acagrid.com/public/Logs/'.date('Ym').'/'.date('d').'_er ...
- R语言读取matlab中数据
1. 在matlab中将数据保存到*.mat 文件夹 save("data.mat","data","label")#将data和label ...
- LinuxC语言读取文件,分割字符串,存入链表,放入另一个文件
//file_op.c #include <string.h> #include <stdio.h> #include <stdlib.h> struct info ...
随机推荐
- [Swift]LeetCode1071.字符串的最大公因子 | Greatest Common Divisor of Strings
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- Integer应该用==还是equals
问题引出:“Integer应该用==还是equals” 讨论这个问题之前我们先放一段代码 public static void main(String[] args) { Integer a1 = 2 ...
- 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 ...
- mysql 导入数据库时,报错1840的解决方法
1.现象 在mysql用sql文件导入数据库时,提示ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @ ...
- react基础篇五
再看JSX 本质上来讲,JSX 只是为 React.createElement(component, props, ...children) 方法提供的语法糖.比如下面的代码: <MyButto ...
- webapi部署到IIS 404错误
环境:win2008r2+IIS 解决方案: 添加一个映射 可执行文件地址(根据系统决定64位可32位): C:\Windows\Microsoft.NET\Framework64\v4.0.3031 ...
- https ssl 总结
主要工作: 1)算法协商: 2)密钥交换: 3)身份认证: 4)数据通信: 1.2.3主要使用握手协议: 4使用记录协议. SSL协议可分为两层:记录协议.握手协议 SSL Record Protoc ...
- DD打卡
一.安装逍遥安卓模拟器 二.安装钉钉 三.设置当前GPS座标 位置模拟器: 链接: https://pan.baidu.com/s/1TC5QkrGAgHOJWtzJnX6vhA 提取码: bpu8 ...
- scrapy-redis让redis不止使用db0
废话不多说,直接在 custom_settings 设置即可 代码: class MySpider(RedisSpider): """Spider that reads ...
- C#datetime判断日期输入是否正确
//7.输入年月日,看看格式是否正确.利用DateTime. //(1) //DateTime dt=DateTime.Now; //Console.Write("请输入现在的年:" ...