有时候,在程序编写过程中涉及到数据的读写,比如读入.txt文档中的数字,本文提供两种读入方法。

一、利用数据流

比如.txt中数据是如下格式:

其中第一行代表有多少个二维数组,本例中是有3个二维数组,第二行代表每个二维数组有多少行,本例中二维数组的列数是固定不变的。那么如何读取这些二维数组呢?

我的代码如下:

#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<fstream>using namespace std;int main()
{ifstream infile("example.txt");int num = 0;infile >> num;cout << num << endl;for (int i = 0; i < num; i++){int N = 0;infile >> N;cout << N << endl;int(*p)[5];//a pointer to a array which has 5 int p = new int[N][5];//creat a dynamic arrayfor (int j = 0; j < N; j++){infile >> p[j][0] >> p[j][1] >> p[j][2] >> p[j][3] >> p[j][4];cout << p[j][0] << p[j][1] << p[j][2] << p[j][3] << p[j][4] << endl;}
         delete [] p;//free space}int aaa;cin >> aaa;return 0;
}

上述代码首先读入第一行数据,以确定二维数组个数num,然后利用for循环,依次读入各个二维数组。在每个循环中,首先读入每个二维数组的行数N,根据行数循环读入二维数组的每一行。由于二维数组的行数是不确定的,所以涉及到动态二维数组的创建,在本例中,由于二维数组的列数是固定的,所以动态数组创建方法如下:

int(*p)[5];//a pointer to a array which has 5 int
p = new int[N][5];//creat a dynamic array

首先声明一个数组指针p,该指针指向一个含有5个int变量的数组,然后利用new运算符申请空间,并将该空间的地址赋给指针p。在读入数据并进行相关操作之后(本例中的操作只是简单地输出显示),需要将动态申请的空间进行释放,利用new申请的空间,采用delete进行释放:

delete [] p;//free space

改程序 的运行结果如下:

显然,数据都得到了正确读入。

二、利用c函数fopen

代码如下:

#include<iostream>
#include<stdlib.h>
#include<stdio.h>
using namespace std;int main()
{
FILE *f;
f = fopen("example.txt", "r");//How files are used? r=we can only read the file
if (f == NULL)
{
cout << "open file failed! the programmer will exit!" << endl;
exit(-1);
}
int num = 0;
fscanf(f, "%d\n", &num);
cout << num << endl;
for (int i = 0; i < num; i++)
{
int N = 0;
fscanf(f, "%d\n", &N);
cout << N << endl;
int(*p)[5];//a pointer to a array which has 5 int
p = new int[N][5];//creat a dynamic array
for (int j = 0; j < N; j++)
{
fscanf(f, "%d %d %d %d %d\n", &p[j][0], &p[j][1], &p[j][2], &p[j][3], &p[j][4]);
cout << p[j][0] << p[j][1] << p[j][2] << p[j][3] << p[j][4] << endl;}
delete[] p;//free space
}
fclose(f);
int aaa;
cin >> aaa;
return 0;
}

与方法一一样,该段程序的运行结果如下:

故利用以上两种办法都可以实现对于.txt文档中数字的读取。

C++读取txt中数据的两种方法相关推荐

  1. 获得GPS数据的两种方法 1读串口

    获得GPS数据的两种方法 1读串口 - [技术] 版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://memset.blogbus.com/logs/17801310.ht ...

  2. python 学习系列(3) 读取并显示图片的两种方法

    python 读取并显示图片的两种方法 在 python 中除了用 opencv,也可以用 matplotlib 和 PIL 这两个库操作图片.本人偏爱 matpoltlib,因为它的语法更像 mat ...

  3. java在文件的后面添加_java 在file的尾部添加数据的两种方法总结

    java 在file的尾部添加数据的两种方法总结 问题描述: 在文件的末尾追加内容 方法1:利用RandomAccessFile类 1.将randomAccessFile模式设置为rw 2将rando ...

  4. SQLServer 批量插入数据的两种方法

    SQLServer 批量插入数据的两种方法- 发布:dxy 字体:[增加 减小] 类型:转载 在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用In ...

  5. java 文件尾部_java 在file的尾部添加数据的两种方法总结

    java 在file的尾部添加数据的两种方法总结 问题描述: 在文件的末尾追加内容 方法1:利用RandomAccessFile类 1.将randomAccessFile模式设置为rw 2将rando ...

  6. mvc控制器接收数据的两种方法

    一.mvc控制器接收数据的两种方法 A方法: public ActionResult ProcessAdd() { string username=Request["UserName&quo ...

  7. java构造和解析json_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  8. java json解析 代码_Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

  9. Java构造和解析Json数据的两种方法详解一

    在www.json.org上公布了很多JAVA下的json构造和解析工具,其中org.json和json-lib比较简单,两者使用上差不多但还是有些区别.下面首先介绍用json-lib构造和解析Jso ...

最新文章

  1. jQuery工具方法
  2. 关于oracle date类型值0000-0-0的分析
  3. 对浅拷贝与深拷贝的研究
  4. ORA-01843:无效的月份
  5. dao层如何调用对象_你的项目应该如何正确分层?
  6. db2 jdbc驱动参数_JDBC详细整理(一)
  7. 来学习几个简单的Hive函数啦
  8. mvc中去除html标签,MVC ValidationMessage 去除上面的Html 标签
  9. [2014-12-30]如何动态构造Lambda表达式(动态构造Lambda查询条件表达式)
  10. 应届生从头脑风暴到游戏策划案的个人思路(一)
  11. 软件安装包制作工具installshield 2020 R1的安装教程
  12. v65智慧屏是真的鸿蒙,华为智慧屏V65深测:真智慧or增智慧?
  13. PHP获取当前域名(判断域名)
  14. h5破解网站图片防盗链
  15. 糖尿病人食谱以及水果的食用
  16. 鼠标的光标变成了下划线
  17. 阿朱:企业信息化十年
  18. 【工具】百度网盘视频类资源下载新思路,轻松优雅解决下载限速方法
  19. 《 HTML5 》— HTML5页面元素及属性
  20. 机动车排放微观控制-汽油机内净化技术

热门文章

  1. 故障集合:那些年学习Linux坑你的故障集合
  2. [OS][FS]查看ext3文件系统分区的superblock
  3. AIX Study之--AIX网卡配置管理(ent0、en0、et0)
  4. 2017年热度最高的十大技术类技能
  5. 方向梯度直方图(HOG)和颜色直方图的一些比較
  6. Android布局中 android:layout_gravity=bottom为何不起作用?
  7. 赛诺朗基智能安全保障平台——安全着你的安全!
  8. 数据挖掘网上资料大全
  9. JSP简单练习-JSP指令
  10. CLR Essential Types