文本格式如下:1,a,b
2,,a,c,d
5,a,d
即每行得第一个为数字,后面得为字符,字符数量不确定(小于十个,大于一个)
我想每次读入一行,存入到一个数组中,例如arr[0]=a;arr[1]=a;arr[2]=b......
这个是读得过程另外写得过程是将数组中得数追加写入到上面文本得后面即例如:第1行 a=x;b=y;
第2行 a=x;c=y;D=Z;
请达人写个给个例子
2,,a,c,d
5,a,d
即每行得第一个为数字,后面得为字符,字符数量不确定(小于十个,大于一个)
我想每次读入一行,存入到一个数组中,例如arr[0]=a;arr[1]=a;arr[2]=b......
这个是读得过程另外写得过程是将数组中得数追加写入到上面文本得后面即例如:第1行 a=x;b=y;
第2行 a=x;c=y;D=Z;
请达人写个给个例子
解决方案 »
- 如何解决fatal error C1083: Cannot open include file: 'unistd.h': No such file or dir
- 关于如何把第三方界面工程整合到我的工程内的问题
- 画了一个折线图,用X轴来显示时间,Y 轴显示数据,时间精确到秒!怎么来设计X轴?
- 共享数据的互斥访问 解决马上给分!
- 请问vc6如何使用xp icon??
- 请问几个初级问题
- 请教
- 如何让ie上的一个按钮调自己写的web app,而按钮和webapp均是所要开发插件的一部分?
- vc访问oracle怎么才能不用装客户端和oledb for oracle驱动?
- 初学者 求指导
- 有几个非常菜的问题!!!!!请指教.
- VC种 CheckMenuItem用法
CStdioFile::ReadString
2. split string
strtok
{
long nNum;//存放数字
char c[10];//存放字符
line()
{
memset(c,0,10);
}
}Line;//存放一行信息结构体typedef CArray<Line,Line> LineArray;//存放文本信息数组,数组个数为文本行数
//读文本
BOOL ReadText(LineArray &linearr,LPCTSTR filename);
//拆分字符
void SplitLineString(Line *line,CString strLine);
BOOL ReadText(LineArray &linearr,LPCTSTR filename)
{
CStdioFile file;
if(!file.Open(filename,CStdioFile::modeRead))
return FALSE;
CString strLine;
while(file.ReadString(strLine))
{
Line line;
SplitLineString(&line,strLine);
linearr.Add(line);
}
file.Close();
return TRUE;
}void SplitLineString(Line *line,CString strLine)
{
CString s;
TCHAR c=',';
int index=0;
int i=strLine.Find(c);
while(i!=-1)
{
s=strLine.Left(i);
if(index==0)
line->nNum=atoi(s.GetBuffer());
else
line->c[index-1]=s.GetAt(0);
index++;
strLine=strLine.Right(strLine.GetLength()-i-1);
i=strLine.Find(c);
}
line->c[index-1]=strLine.GetAt(0);
}//例子,VS2005,XP下测试通过
LineArray arr;
ReadText(arr,_T("c:\\a.txt"));
1 a=10 b=20
2 a=30 b=30 c=30
..................
等等