C++输入(2):文件读取

来源:互联网 发布:wamp配置php环境变量 编辑:程序博客网 时间:2024/05/01 21:37

记录以文件方式读取数据。

如从文件Data.txt中读取数据,文件内容如下:

0 03 82 21 15 34 86 35 46 47 5


思路:先通过文件的行数,得到样本个数,再建立动态数组,逐个读取数据。


变量定义:

#define MAX_SAMPLE_NUM 100    // 最大样本个数  double **SAMPLE;              // 样本集  int SAMPLE_NUM = 0;           // 样本个数  int NUMBER = 2;               // 维数  

// 获取文件的行数int countLines(char *filename){ifstream File;int n = 0;string temp;File.open(filename, ios::in);  //ios::in 表示以只读的方式读取文件if (File.fail())  //文件打开失败:返回0{return 0;}else  //文件存在,返回文件行数{while (getline(File, temp)){n++;}return n;}File.close();}

// 文本读取训练样本void loadSample(char *filename){SAMPLE_NUM = countLines(filename);  //获取行数string temp;int i, j;SAMPLE = new double*[SAMPLE_NUM];for (i = 0; i<SAMPLE_NUM; i++){SAMPLE[i] = new double[NUMBER];}ifstream file;file.open(filename, ios::in);  //ios::in 表示以只读的方式读取文件if (file.fail())  //文件打开失败{cout << "Can't open file!\n";return;}cout << "从" << filename << "读取数据成功!\n";for (i = 0; i < SAMPLE_NUM; i++){for (j = 0; j < NUMBER; j++){file >> SAMPLE[i][j];}}file.close();}

操作文件时,要声明#include <fstream>,用ifstream输入流读取文件,用ofstream输出流写入文件。
0 0
原创粉丝点击