一、我们得看看,在C++中如何打开一个文件:
1、得到打开文件的绝对路径:
MFC中,一般做法如下:
1: char szFilter[] = "文本文件 (*.txt)|*.txt|All Files (*.*)|*.*||";
2: CString filePath("");
3: CFileDialog fileOpenDlg(TRUE, "txt", NULL,OFN_HIDEREADONLY,szFilter);
4: if (fileOpenDlg.DoModal() == IDOK)
5: {
6: VERIFY(filePath = fileOpenDlg.GetPathName());
7: }
8: m_TXTPath=filePath;//得到文件路径
9: UpdateData(false);
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
在标准C++中,可能只能手动写入(控制台中)
二、打开文件
例如:
CString m_FilePath = fileDlg.GetPathName(); //取得文件路径及文件名
CStdioFile f;
f.Open(m_FilePath,CFile::modeRead);
CString data;
int count=1;//行号
while (f.ReadString(data)) //从文件中读取一行数据,暂存在data变量中
{
if(count==1) //第一行为数值行
{
//将一行中的各个部分存到数组中,%d 表示“十进制数”
sscanf(data,"%d %d %d",&(MyStruct.t_int[0]),&(MyStruct.t_int[1]),&(MyStruct.t_int[2]));
}
else if(count==2)
{
//%lf 表示“双精度浮点数,也就是double”,%f表示“单精度浮点数,float”
sscanf(data,"%lf %lf",&(MyStruct.t_double[0]),&(MyStruct.t_double[1]));
}
else if(count==3)
{
memset(MyStruct.t_ch_1,'/0',10); //初始化数组,并赋值为'/0'
memset(MyStruct.t_ch_2,'/0',10);
//将分隔开的字符串 存到字符数组中
sscanf(data,"%s%s",&(MyStruct.t_ch_1),&(MyStruct.t_ch_2));
}
count++;
}
GetDlgItem(IDC_STATIC)->SetWindowText(_T(MyStruct.t_ch_1));//得到第三行数据中的第一项 作为测试
<style type="text/css">
.csharpcode, .csharpcode pre
{
font-size: small;
color: black;
font-family: consolas, "Courier New", courier, monospace;
background-color: #ffffff;
/*white-space: pre;*/
}
.csharpcode pre { margin: 0em; }
.csharpcode .rem { color: #008000; }
.csharpcode .kwrd { color: #0000ff; }
.csharpcode .str { color: #006080; }
.csharpcode .op { color: #0000c0; }
.csharpcode .preproc { color: #cc6633; }
.csharpcode .asp { background-color: #ffff00; }
.csharpcode .html { color: #800000; }
.csharpcode .attr { color: #ff0000; }
.csharpcode .alt
{
background-color: #f4f4f4;
width: 100%;
margin: 0em;
}
.csharpcode .lnum { color: #606060; }</style>
说明:
如果文件不是很大的话,用CStdioFile类比较好;若文件很大,如100M左右的txt,则得考虑其他的方法。
sscanf函数的用法: sscanf(源字符串数据,转换格式,转换后的数据……)--->目的是将字符串按“空格”解析出来
,分别存贮。
与之差不多的是sprintf函数: sprintf(目的字符串数据,转换格式,要转换的数据……)---->目的是把单个的数据
按照转换格式变成一个字符串
测试数据: 第一行(三个整数);第二行(两个小数);第三行(两个字符串)
源程序:openfile_MFC.rar
分享到:
相关推荐
主要介绍了java读取解析xml文件实例,本文创建了一个XML解析类同时讲解了循环节点输出方式,需要的朋友可以参考下
java读取本地.db文件简单方法,sqlite数据库类型文件获取数据
如下所示: #encoding=utf-8# x=raw_input("Please enter a text: ") ... 您可能感兴趣的文章:Python读写txt文本文件的操作方法全解析python将每个单词按空格分开并保存到文件中python方法生成txt标签
python读取.txt(.log)文件 、.xml 文件 、excel文件数据,并将数据类型转换为需要的类型,添加到list中详解 1.读取文本文件数据(.txt结尾的文件)或日志文件(.log结尾的文件) 以下是文件中的内容,文件名为data...
本资源为Matlab读取.dat二进制文件的工程,包括了读取、二进制解析、数据拼接、数据组合、数据绘图、将数据分析结果、绘图生成WORD报告。一键数据分析,使用方便。 本资源适用于Matlab处理批量数据而苦恼的工程师/...
主要介绍了Java实现解析dcm医学影像文件并提取文件信息的方法,结合实例形式分析了java基于第三方库文件针对dcm医学影像文件的解析操作相关实现技巧,需要的朋友可以参考下
nupkg格式的C#库文件,专门用来解析elf类文件的,使用的时候先加载安装这个库,怎么安装自行百度C# nupkg, 然后using包含ELFSharp.ELF.XXX的命名空间,然后就可以操作对应的函数了, 实例: var elf = ELFReader....
这篇文章主要介绍了Python读取csv文件实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 创建一个csv文件,命名为data.csv,文本内容如下: root,123456...
C语言实例解析精粹(第二版) 光盘代码 本文件包括以下内容: ※ 1、文件说明 ※ 2、源码操作说明 ※ 3、光盘目录清单 ◎ 源码操作说明 源代码使用方法是(以实例1为例): 将该实例的源码,比如实例1的1.c文件(可以...
VC++6.0编译通过的读写CSV文件的代码及实例 在VC++6.0中编译通过,实测可用 通用性很不错 包含CSV读取的实例
关于jq读取xml的,有需要的朋友可以下载。
delphi解析xml文件实例,代码为delphi7编写,逐步解示XML节点读取,与记录读取方法,
本实例中定义了STL文件中的基本数据结构,采用普通文件读取和内存映射文件读取两种方式,并对二者效率进行对比
rapidjson-超强JSON文件读取解析库(带打包和解析实例),支持各种文件编码,推荐使用 效率比jsoncpp好,推荐大家使用
[Android实例] Android之解析XML文件
本文实例讲述了Android读取本地json文件的方法。分享给大家供大家参考,具体如下: 1、读取本地JSON ,但是显示汉字乱码 public static String readLocalJson(Context context, String fileName){ String json...
简单到json 读取excel文件并将其解析为javascript对象。安装npm install simple-excel-to-json简化用法您只需要使用简单的“ simple-excel-to-json”并执行方法“ parseXls2Json” var parser = require ( 'simple-...
js插件,快速解析csv文件。亲测好用,博客有实例代码,欢迎下载!
一个完善的读取3D文件实例,完成3ds文件的读取