C++关于磁盘的数据的操作
2015-07-05 11:01
656 查看
</pre><p><strong>磁盘里面存在以逗号分开的double类型的数据点(里面的点,每三个一组,分别是x,y,z坐标),现在需要从磁盘里面读出数据的个数,以及x和y坐标的最大值以及最小值</strong></p><p><img src="https://img-blog.csdn.net/20150705110512929?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" /></p><pre name="code" class="html">#include<iostream> #include<stdio.h> #include<malloc.h> #include <stdlib.h> #include <string> #include <string.h> #include<fstream> #define INF 1000000000 using namespace std; int main() { double xMin,xMax,yMin,yMax; yMin=INF; yMax=-INF; xMin=INF; xMax=-INF; string filename; //="E:\FourTree\sdkd\ceshi.txt"; char str[50]; memset(str,0,sizeof(str)); //double ad[100]={0}; double ad[10]={0}; int index=0,j=0,i=0; char ch; ifstream infile; cout<<"请输入要读入的文件的名字(以回结束【绝对路径有效】):"<<endl; getline(cin,filename,'\n'); infile.open(filename); if(!infile){ cerr<<"打开文件失败!。。"<<endl; return 1; } do{ infile.read(&ch,1); double d=0.0; str[j++]=ch; if(ch==','||ch=='\n'||infile.eof()){ str[j-1]='\0'; d=atof(str);//将字符串转换成double类型的数字 if(i<3){ ad[i]=d;//数据点坐标缓存器 if(i==0){ if(xMin>ad[0]){ xMin=ad[0]; } if (xMax<ad[0]) { xMax=ad[0]; } } if(i==1){ if(yMin>ad[1]){ yMin=ad[1]; } if (yMax<ad[1]) { yMax=ad[1]; } } i++; }else{ index++;//如果数据点坐标缓存器的坐标数目大于3.则点数加一 i=0;// memset(ad,0,sizeof(ad)); ad[i]=d;//数据点坐标缓存器 if(i==0){ if(xMin>ad[0]){ xMin=ad[0]; } else if (xMax<ad[0]) { xMax=ad[0]; } } if(i==1){ if(yMin>ad[1]){ yMin=ad[1]; } else if (yMax<ad[1]) { yMax=ad[1]; } } i++; } memset(str,0,sizeof(str)); j=0; continue; } }while(!infile.eof()); cout<<"所有数据点的数目为:"<<index+1<<endl; cout<<"这些点的最小的x坐标是: "<<endl; printf("%lf\n",xMin); cout<<"最大的x坐标是: "<<endl; printf("%lf\n",xMax); cout<<"这些点的最小的y坐标是: "<<endl; printf("%lf\n",yMin); cout<<"最大的y坐标是: "<<endl; printf("%lf\n",yMax); return 0; }
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- 关于指针的一些事情
- 我是运营,我没有假期
- c++ primer 第五版 笔记前言
- 逻辑卷管理(LVM) Linux 用户指南
- share_ptr的几个注意点
- DB2数据库的安装
- C#实现把指定数据写入串口
- “传奇”图象数据存储方式
- 修复mysql数据库
- Lua教程(一):在C++中嵌入Lua脚本
- Lua教程(二):C++和Lua相互传递数据示例
- SQLServer 数据导入导出的几种方法小结
- 完美解决MSSQL"以前的某个程序安装已在安装计算机上创建挂起的文件操作"
- MySQL数据备份之mysqldump的使用详解
- C#实现窗体间传递数据实例
- C++联合体转换成C#结构的实现方法
- 给你的数据库文件减肥
- Oracle数据更改后出错的解决方法
- C#将Sql数据保存到Excel文件中的方法