CFileDialog、CStdioFile读取文件中的内容,每行按空格依次读入
时间:2019-01-11
本文章向大家介绍CFileDialog、CStdioFile读取文件中的内容,每行按空格依次读入,主要包括CFileDialog、CStdioFile读取文件中的内容,每行按空格依次读入使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
CFileDialog、CStdioFile读取文件中的内容,每行按空格依次读入
注:
1、该文件为固定为3列的小数txt文件,且数字之间以空格隔开
2、CFileDialog 与 CStdioFile 类:
class CFileDialog : public CCommonDialog //afxdlgs.h
class CStdioFile : public CFile //afx.h
CFileDialog 主要用于MFC界面开发中。
一、CFileDialog 与 CStdioFile 联合使用的程序大致框架如下:
注意:
file.ReadString(Data)返回bool值,
如果读到的该行字符长度为0,则返回0;否则,返回1,相当于文件读取结束标志!
代码:
CFileDialog dlg(TRUE);
dlg.m_ofn.lpstrFilter = _T("txt Files(*.txt)\0*.txt\0所有文件(*.*)\0*.*\0\0");
if (dlg.DoModal() == IDOK)
{
CStdioFile file(dlg.m_ofn.lpstrFile, CFile::modeRead);//定义文件的路径和只读模式
file.Seek(0, CFile::begin);
CString Data;
while (file.ReadString(Data)){//将一行数据读取到 CString Data中
//处理每一行数字,按空格进行分割 begin
...
//处理每一行数字,按空格进行分割 end
}
file.Close();
}
二、处理每一行数字,按空格进行分割
1、C语言 strtok方法:
//处理每一行数字,按空格进行分割 begin
char a[150] = "", b[150] = "";
for (int i = 0; i < 150; i++){ a[i] = '\0'; }//强行加入了'\0',每一行字符串后面的'\0'字符结
尾符放进来
memcpy(a, Data, Data.GetLength() * 2);//将Data赋值到a中
for (int i = 0, j = 0; i < 150; i += 2, j++){ b[j] = a[i]; }
C3DPoint p;
p.x = atof(strtok(b, " "));
p.y = atof(strtok(NULL, " "));//第二次调用该函数strtok(NULL,","),第一个参数设置为NULL。结果返回分割依据后面的字串,即第二次输出d。
p.z = atof(strtok(NULL, " "));
v_pointArray.push_back(p);//保存该点到向量 vector<C3DPoint> v_pointArray中
//处理每一行数字,按空格进行分割 end
2、C++ stringstream
先将每行CString字符->string,
然后,根据stringstream 变量自动按空格分割,直接读入到C3DPoint p中即可。
//处理每一行数字,按空格进行分割 begin
string line = CT2A(Data.GetBuffer());//Unicode下:将CString->string
stringstream ss(line);//头文件 sstream.h
C3DPoint p;
while (ss >> p.x >> p.y >> p.z){}//知晓固定的列数为3列,即为x,y,z三个坐标值。
v_pointArray.push_back(p);//保存该点到向量 vector<C3DPoint> v_pointArray中
//处理每一行数字,按空格进行分割 end
- 狄斯奎诺(dijkstra 模板)
- HDUOJ---汉洛塔IX
- 小错误系列
- HDUOJ-----4510 小Q系列故事——为什么时光不能倒流
- HDUOJ----4509湫湫系列故事——减肥记II
- HDUOJ-----4506小明系列故事——师兄帮帮忙
- HDUOJ---4503 湫湫系列故事——植树节
- HDUOJ----4504 威威猫系列故事——篮球梦
- 推荐一款MySQL优化工具
- HDUOJ----4502吉哥系列故事——临时工计划
- HDUOJ----4004The Frog's Games(二分+简单贪心)
- HDUOJ----4006The kth great number(最小堆...)
- HDUOJ----4501小明系列故事——买年货(三维背包)
- message 弹出窗口
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法