【求助】关于c++文件读写的小问题

piaopiao033 2014-02-15 12:08:58
自己在用c++语言写一个小程序,需要从dataGridView中读取表格数据然后存到一个文件里。我遇到的问题是程序通过编译,写入文件的代码也已经运行(我通过一个messageBox 确认)但是没有看到写出的文件,也没有异常。
以下是我的代码:希望高手指导一下。不胜感激!
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
struct Select st;
class map_Storage set;
System::Object^ dkey1;Object^ dname1;Object^ dprice1;
String^ dkey;String^ dname;String^ dprice;
std::fstream ofile("111.txt");
// std::fstream ofile("D:\project\Ms 2010 PJ\yycl\111.txt",std::ios::binary);两个方式都用了。
for(int i=0;i<=max;i++) //从object转化成String
{

dkey1 = this->dataGridView1->Rows[i]->Cells[0]->Value;
dkey = String::Format("{0}",dkey1);
dname1 = this->dataGridView1->Rows[i]->Cells[1]->Value;
dname=String::Format("{0}",dname1);
dprice1 = this->dataGridView1->Rows[i]->Cells[2]->Value;
dprice=String::Format("{0}",dprice);
st = set.storageStructSelect(dkey,dname,dprice);
ofile.write(reinterpret_cast<char*>(&st),sizeof st);//这里是问题关键是否有错误,我是从别的书上看到这个方法的。

MessageBox::Show("111");//确认代码执行

}

ofile.close();
}
这个是我的storageStructSelect方法:
struct Select map_Storage::storageStructSelect(System::String^ key,System::String^ name,System::String^ price)//自己写的方法,讲String转化成string
{
struct Select st;
std::string key1,name1,price1;
MarshalString(key,key1);//用的是微软社区里的转化方法,用指针做形参直接以字符串为中介转换的。
MarshalString(name,name1);
MarshalString(price,price1);
st.name=name1;st.key=key1;st.price=price1;
return st;
}
...全文
92 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
piaopiao033 2014-02-16
  • 打赏
  • 举报
回复
嗯,问题解决了。3q
赵4老师 2014-02-15
  • 打赏
  • 举报
回复
在每句ofile.wirie(...后面加 ofile.flush();
第00章 目录 第01章 关于本手册 01.1 两套帮助 01.2 关于安装 01.3 使用Vim教程 01.4 版本 第02章 Vim第一步 02.1 首次运行Vim 02.2 插入文本 02.3 移动光标 02.4 删除字符 02.5 撤销和重做 02.6 其它编辑命令 02.7 退出 02.8 求助 第03章 移动 03.1 以Word为单位的移动 03.2 移动到行首或行尾 03.3 移动到指定的字符上 03.4 以匹配一个括号为目的的移动 03.5 移动到指定行 03.6 告诉你当前的位置 03.7 滚屏 03.8 简单搜索 03.9 简单的搜索模式 03.10 使用标记 第04章 小幅改动 04.1 操作符命令和位移 04.2 改变文本 04.3 重复改动 04.4 Visual模式 04.5 移动文本 04.6 复制文本 04.7 使用剪贴板 04.8 文本对象 04.9 替换模式 04.10 结论 第05章 定制你的Vim 05.1 vimrc文件 05.2 vimrc示例 05.3 简单的映射 05.4 添加一个plugin 05.5 增加一个帮助文件 05.6 选项窗口 05.7 常用选项 第06章 使用语法高亮 06.1 打开色彩 06.2 没有色彩或色彩错误? 06.3 不同的颜色 06.4 有色或无色 06.5 彩色打印 06.6 进一步的学习 第07章 编辑多个文件 07.1 编辑另一个文件 07.2 文件列表 07.3 切换到另一文件 07.4 备份 07.5 在文件间复制粘贴 07.6 查看文件 07.7 更改文件名 第08章 分隔窗口 08.1 分隔一个窗口 08.2 为另一个文件分隔出一个窗口 08.3 窗口大小 08.4 垂直分隔 08.5 移动窗口 08.6 针对所有窗口操作的命令 08.7 使用vimdiff查看不同 08.8 其它 08.9 页签 第09章 使用GUI 09.1 GUI的各部分 09.2 使用鼠标 09.3 剪贴板 09.4 选择模式 第10章 大刀阔斧 10.1 命令的记录与回放 10.2 替换 10.3 命令作用范围 10.4 全局命令 10.5 Visual block模式 10.6 读写部分文本 10.7 格式化文本 10.8 改变大小写 10.9 使用外部程序 第11章 灾难恢复 11.1 基本方法 11.2 交换文件在哪? 11.3 是不是死机了? 11.4 进一步的学习 第12章 奇技淫巧 12.1 替换一个word 12.2 将Last,First为First Last 12.3 排序 12.4 反转行序 12.5 统计字数 12.6 查找帮助页 12.7 消除多余空格 12.8 查找一个word在何处被引用 第20章 回事冒号命令 20.1 命令行编辑 20.2 命令行缩写 20.3 命令行补齐 20.4 命令行历史记录 20.5 命令行窗口 第21章 进退之间 21.1 挂起与恢复 21.2 执行shell命令 21.3 记住编辑住处:viminfo 21.4 会话 21.5 视图 21.6 模式行 第22章 查找文件 22.1 文件浏览器 22.2 当前目录 22.3 查找一个文件 22.4 缓冲区列表 第23章 编辑非文本文件 23.1 DOS,Mac和Unix格式的文件 23.2 来自因特网的文件 23.3 加密文件 23.4 二进制文件 23.5 压缩文件 第24章 快速键入 24.1 纠错 24.2 显示匹配字符 24.3 自动补全 24.4 重复录入 24.5 从其它行复制 24.6 插入一个寄存器的内容 24.7 缩写 24.8 键入特殊字符 24.9 连体字 24.10 Normal模式命令 第25章 编辑格式化的文本 25.1 断行 25.2 对齐文本 25.3 缩进和制表符 25.4 处理长的文本行 25.5 编辑表格 第26章 重复重复,再重复 26.1 Visual模式的重复 26.2 加与减 26.3 对多个文件做同样的改动 26.4 在一个shell脚本中使用Vim 第27章 搜索命令和模式语言 27.1 忽略大小写 27.2 绕回文件头尾 27.3 偏移 27.4 多次匹配 27.5 多选一 27.6 字符范围 27.7 字符分类 27.8 匹配一个断行 27.9 例子 第28章 折行 28.1 使用何种折行方法? 28.2 手工折行 28.3 使用折行 28.4 保存和恢复折行 28.5 根据缩进的折行 28.6 根据标记的折行 28.7 根据语法的折行 28.8 根据表达式折行 28.9 折叠没有修改的行 28.10 使用何种折行方法? 第29章 之于程序 29.1 使用tags 29.2 预览窗口 29.3 在程序中移动 29.4 查找全局标识符 29.5 查找局部标识符 第30章 程序的编辑 30.1 编译 30.2 C程序的缩进 30.3 自动缩进 30.4 其它的种种缩进 30.5 制表符和空格 30.6 对注释的格式化 第31章 探索GUI 31.1 文件浏览器 31.2 确认 31.3 菜单命令的快捷键 31.4 Vim的窗口位置和大小 31.5 其它 第32章 树状撤消 32.1 为每个修改编号 32.2 在不同撤消分支间移动 32.3 时间之旅 第40章 定义新命令 40.1 键映射 40.2 自定义冒号命令 40.3 自动命令 第41章 Vim脚本 41.1 介绍 41.2 变量 41.3 表达式 41.4 条件 41.5 执行一个表达式 41.6 使用函数 41.7 函数定义 41.8 列表和字典 41.9 异常 41.10 注意事项 41.11 定制自己的plugin 41.12 定制一个文件类型plugin 41.13 定制一个编译器plugin 41.14 写一个快速载入的plugin 41.15 建立自己的脚本库 41.16 发布你的Vim脚本 第42章 增加新菜单 42.1 介绍 42.2 菜单命令 42.3 其它 42.4 工具栏和弹出式菜单 第43章 文件类型 43.1 文件类型的插件 43.2 添加一个filetype 第44章 自定义语法高亮 44.1 基本语法命令 44.2 关键字 44.3 匹配 44.4 区域 44.5 嵌套语法项 44.6 后续组 44.7 其它参数 44.8 簇 44.9 包含另一个语法文件 44.10 语法同步 44.11 安装一个语法文件 44.12 可移植的语法文件 第45章 选择语言 45.1 用于消息的语言 45.2 用于菜单的语言 45.3 使用另一种编码方法 45.4 编辑另类编码方案的文件 45.5 输入 第90章 Vim安装 90.1 Unix 90.2 MS-Windows升级 90.3 升级 90.4 常见问题 90.5 卸载Vim 附录一 Vim作者专访 附录二 七个有效的文本编辑习惯 附录三用Vim进行C/C++编程介绍
【为什么还需要学习C++?】 你是否接触很多语言,但从来没有了解过编程语言的本质?你是否想成为一名资深开发人员,想开发别人做不了的高性能程序?你是否经常想要窥探大型企业级开发工程的思路,但苦于没有基础只能望洋兴叹? 那么C++就是你个人能力提升,职业之路进阶的不二之选。【课程特色】 1.课程共19大章节,239课时内容,涵盖数据结构、函数、类、指针、标准库全部知识体系。2.带你从知识与思想的层面从0构建C++知识框架,分析大型项目实践思路,为你打下坚实的基础。3.李宁老师结合4大国外顶级C++著作的精华为大家推出的《征服C++11》课程。【学完后我将达到什么水平?】 1.对C++的各个知识能够熟练配置、开发、部署;2.吊打一切关于C++的笔试面试题;3.面向物联网的“嵌入式”和面向大型化的“分布式”开发,掌握职业钥匙,把握行业先机。【面向人群】 1.希望一站式快速入门的C++初学者; 2.希望快速学习 C++、掌握编程要义、修炼内功的开发者; 3.有志于挑战更高级的开发项目,成为资深开发的工程师。 【课程设计】 本课程包含3大模块基础篇本篇主要讲解c++的基础概念,包含数据类型、运算符等基本语法,数组、指针、字符串等基本词法,循环、函数、类等基本句法等。进阶篇本篇主要讲解编程中常用的一些技能,包含类的高级技术、类的继承、编译链接和命名空间等。提升篇:本篇可以帮助学员更加高效的进行c++开发,其中包含类型转换、文件操作、异常处理、代码重用等内容。
http://www.doyouhike.net/forum/comm_nav/325548,0,0,1.html 求助 如何使用 Google Earth 做一条线路图 放进GPS 以前看见有一个帖子,上面写着有一位仁兄在偷 Google Earth 的高程数据,做等高线地图,于是在 Baidu 这样搜索 “Google Earth site:www.doyouhike.net”,搜索磨房里面所有有关“Google Earth”的帖子,那个帖子没有找到,却发现了本帖子。由于自己有时候带队,还有就是喜欢琢磨 GPS,就自己生成 KML 格式的轨迹。在“Google Earth”里面找到自己要去的地方,通过别人的资料,看看看看大致的路线,然后取一些坐标点。取点的时候,把鼠标放在“Google Earth”上,然后按“Print Screen/SysRq”键来截屏,之后,粘贴在画图里面,之后,就录入这个点的经纬度,海拔一般情况下的价值不大,就省略了。之后,把这些点导入 WPS的电子表格,利用公式把“114,31,00.18”格式的经纬度转换为“114.516716”格式,就着就手工生成 KML文件了,最后,利用 gpsbabel-1.3.6 转换成我的 GPS 识别的格式。想省钱,就在 TAOBAO 买了一个二手杂牌的 GPS,Lowrance Hunt C,不支持中文,于是采用了英文菜单,地名只好采用拼音了。这样做起来实在累,一般生成一条比较短的轨迹,花两个小时是很正常的事情。前一阵子,在学习《WINDOWS 程序设计》,于是就想参照上面的例程写一个小程序,让它自动生成我需要的轨迹。 《WINDOWS 程序设计》的第八章的 WHATCLR 程序,它运行时候,就可以以点的方式改变其它程序的颜色,既然要改变这些点,就要知道它们相对于屏幕左上角的坐标。既然是这样,那利用相似三角形的原理,我在 “Google Earth”这样描点,知道起点和终点的坐标后,就很容易地生成一条所需要的 KML 格式的轨迹了。之后,把它导入“Google Earth”以检验这条轨迹,不合乎自己要求就重描一条,几分钟就搞定了。看来,“懒人推动社会进步”,这句话非常有道理。 其中一个问题就是,需要用按键或者鼠标来控制程序描点的开始和结束,于是参考了第六章的 KEYVIEW1 和 第七章的 BLOKOUT1,最后决定使用“a”(小写字母)座位控制键!本来想以鼠标右键来控制的,后来没有搞定,就放弃了。 最后碰到的一个令人头疼的问题就是保存文件,开始想参考第十一章的 POPPAD 程序,看来没有把这个程序吃透,就放弃了。准备使用《WINDOWS 核心编程》上面的文本框来输出生成的经纬度文件,当我安装号运行程序库并配置好,忽然发现它是 C++ 的程序,晕死了。期间还尝试过使用 C++ 的文件指针 FP,后来发现不支持!就放弃了,时间不允许我先去吃透 C++ 再来完成这个程序。后来,发现《WINDOWS 程序设计》的例程,包含的头文件是这种:#include ,而 C++ 格式包含的头文件是:#include ,通常没有“.h”,感觉《WINDOWS 程序设计》应该还支持 Turbo C 2.0 格式下的文件读写,于是找到谭浩强同志的《C 语言程序设计》,看看它怎么弄的。之后,在 VC++ 6.0下测试了一把,通过,于是程序就基本完工了。 程序的使用,把附件的压缩包解压缩的你的硬盘的任意一个角落,在 C 盘的根目录下生成一个文本文件“START.txt”,不知道怎么生成就问你的电脑启蒙老师了。压缩包里面有一个 START.txt,可以直接修改了!然后运行 WHATCLR.exe,按一下小写字母“a”,C 盘的根目录下就生成了 startstop.kml,(可能需要刷新一下),将其导入“Google Earth”,就会发现2个点,“start”和“stop”,点 WHATCLR.exe 让它在最前面,之后把鼠标放在 “start” 处,“start” 会变大,再按一下小写字母“a”,按住鼠标左键沿着路径拖动就开始生成轨迹,当鼠标拖到 “stop”点的时候,“stop”变大,松开鼠标,同时按一下小写字母“a”完成轨迹的生成。注意,生成轨迹的时候,必须让 WHATCLR.exe 始终处在各个窗口的最前面,也就是它获得焦点!这时,在 C 盘的根目录就会发现2个 KML 文件:“GPSDATA.KML”和“GPSDATA2.KML”,把“GPSDATA.KML”导入到“Google Earth”,看是否合乎你的要求,不合要求就重来一遍,直到合乎你的要求为止。用 gpsbabel-1.3.6 把转换为你的 GPS 所支持的格式即可。 注意:由于是习作,KML 文件保存的位置默认为 C 盘,如果想存储在其它地方,可以自行修改程序。 压缩包里附有源代码。如果想知道程序为什么这么写,请问 Bill·Gates 或者是 Charles·Petzold。如果想知道 KML 文件怎么生成,请联系 Google 或者 zGPSconv.exe 的作者,我是参照 zGPSconv.exe 生成的 KML 文件来生成 KML 文件的。
vf6.0,要考二级没系统的下哈 Microsoft Visual FoxPro 6.0 for Windows 的常见问题 这些是有关 Microsoft Visual FoxPro 最常见的问题。在您求助 Microsoft 产品支持服务之前,请先查阅这张列表。 若想打印这些附注,请从“文件”菜单中选择“打印”命令。此文档分为以下四部分: --------------------------------------------------------------------- 部分 1. 技术支持与市场 部分 2. Visual FoxPro 6.0 新增功能 部分 3. 从其他版本的 FoxPro 和 Visual FoxPro 中移植 部分 4. Visual FoxPro 常见问题 --------------------------------------------------------------------- 部分 1. 技术支持与市场 问题 1-1: 从何处可以获得产品的更新版本? 答案: 在 Visual FoxPro 的 Web 站点上即可获得产品的更新信息,其中包括有关 Service Pack 和更新的示例、向导及其他代码的信息,该站点的网址为: www.microsoft.com/vfoxpro 请定期查看该网站,以便下载产品的最新版本。 问题 1-2: 从何处可以得到有关 Visual FoxPro 的详细资料? 答案: 通过 Microsoft Visual FoxPro Web 站点是随时获得各种最新产品发布信息的最佳途径。在此站点上不仅有新的产品公告,而且还提供了产品的更新信息、技术文章、白皮书、专业开发人员设计的优秀示例、会议公告、以及与其他许多 FoxPro web 站点的各种链接。 问题 1-3: 如何获得技术支持,以及如何报告软件错误? 答案: Microsoft Visual FoxPro Web 站点已经链接到了多种联机支持选项,其中包括覆盖面广阔的有关所有产品 Microsoft Knowledge Base(Microsoft 知识库)。您还可以阅读一份有关常见问题的清单。除联机支持之外,还可以直接通过电话获得技术支持。“帮助”菜单中的选项可列出技术支持的电话号码。这些电话号码也可用于报告产品中的错误。 问题 1-4. 什么是 Knowledge Base?如何使用它? 答案: Knowledge Base 是内容广泛的论文集,覆盖了如何使用产品的各种特性、已知的软件错误及其解决方案或回避的方法、以及其他有助于使用各种 Microsoft 产品的有用信息。通过以下站点可访问整个 Knowledge Base: support.microsoft.com 问题 1-5: 是否会有 Visual FoxPro 6.0a? 答案: Microsoft 公司一向承诺为用户提供高质量的产品。如果确实需要,我们将提供 Visual FoxPro 6.0 的错误修订版。但是,修订版不会使用 6.0a 版的形式。Visual FoxPro 6.0 中任何错误的修正都将包含在 Visual Studio Service Pack 中。同时还会在 Visual FoxPro 的 www.microsoft.com/vfoxpro 或 Visual Studio 的www.microsoft.com/vstudio 的 Web 站点上发布修订公告。 问题 1-6: Microsoft 公司为应用程序的开发提供了一些优秀的解决方案。怎样才能知道应该向客户推荐和使用哪种产品? 答案: 在选择适用某项任务的产品时,需要考虑多方面的因素。Microsoft Visual FoxPro web 站点上有一份优秀的策略背景论文,它比较了 Visual FoxPro、Visual Basic、SQL Server 和 Access 等 Microsoft 产品之间的不同。 问题 1-7: 哪里可以找到 Visual FoxPro 的使用示例? 答案: Visual FoxPro 6.0 产品中带有丰富的示例,其中有一些是针对 6.0 版特有功能的新示例。与 Visual FoxPro 以前的版本不同,这些示例将与所有 Visual Studio 示例安装在一起。您必须运行 MSDN Library 的“自定义”安装来安装这些示例。在 Visual FoxPro 中可使用新的 HOME(2) 函数方便地找到已安装示例的位置。 除了产品中所自带的示例外,Microsoft Visual FoxPro web 站点还将经常提供新的示例。

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧