在文本文件中的数据如下 分成三组。第一组数据包含3列(1-3列)(若不足三列则以空格补充)(148,23)
第二组数据包含4列(8-11列,第一第二组之间空了5列)(1300,100)
第三组数据是浮点数 除小数点外包含4列(13-16列)(2.600,1.30)
148 1300 2.600
23 100 1.30
.........................
现在想用三个数组分别把这三组数据读取出来 应该怎么做?
第二组数据包含4列(8-11列,第一第二组之间空了5列)(1300,100)
第三组数据是浮点数 除小数点外包含4列(13-16列)(2.600,1.30)
148 1300 2.600
23 100 1.30
.........................
现在想用三个数组分别把这三组数据读取出来 应该怎么做?
解决方案 »
- 弱弱的问一下,关于visual studio2010的资源视图的问题
- 大家好,我有一个关于多线程和socket的问题,困扰我很久了。。
- 如何在VC里实现从CSplitterWnd类派生新类?
- 我想在vs6中使用免注册com,都需要做哪些操作?
- 静态分割窗口子窗口如何显示弹出菜单
- SQLFetch引起的Access Violation问题,oracle8.0.5
- 我想把光盘里的内容拷贝到硬盘里,可就是不行,不知道为什么?请看以下代码:
- **** 关于detous的Hook api ****
- SQL server 临时表的概念
- 关于使用BHO编写网页木马和弹出窗口拦截的问题
- 窗体颜色 问题 在线等
- 关于toolbar上,单个按钮更换图标的问题
用CStidoFile类来读
CStidoFile file;
file.open("c:\\xx.txt",只读模式);//
CString str;
while(file.readstring(str))
{
//在这里实现读取
//由于每个字段的个数都固定好了,就用str.Mid的方式来读各个字段 分别保存起来就可以啦
}//循环读取
{
//参数一、传人的字符串
//参数二、int * 数组保存的是字串的个数a[0]为第一个字串的开始位,a[1]为第二个字串的开始位
//返回值为一行中字符串的个数
int count=0;
BOOL bSpace=TRUE;
int length=int(strlen(buf)); //得到字符串长度
for(int i=0;i<length;i++) //对所有字符进行循环
{
if(bSpace && buf[i]!=' ' && buf[i]!='\t') //字符不是空格和TAB键
{
a[count]=i;
count++;
bSpace=FALSE;
}
else if(!bSpace &&(buf[i]==' ' || buf[i]=='\t'))
{
buf[i]='\0';
bSpace=TRUE;
}
}
return count;
}//使用过程
char buf[500]; //保存一行的字符串
int a[20]; //保存每个字串的位置,最多可以保存个
CString strLine; //读取的一行数据
CString Name1,Name2,Name3,Name4;strcpy(buf,strLine.GetBuffer(strLine.GetLength()));
AnalyzeOneLine(buf,a); //调用处理函数
Name1=buf+a[1]; //第二个字符串
Name2=buf+a[2]; //第三个字符串
Name3=buf+a[3]; //第四个字符串