一个文件读取的有关问题,高手们帮帮小弟我吧
一个文件读取的问题,高手们帮帮我吧。
我想读取文件的1234列,各列以空格隔开,我的思想是读完4列后,读到下一行,可是并不是想像的那样,
CString strGirder;
CString strPier;
CString strScrew;
CString strDate;
while(fin)
{
while(fin.get(ch),ch!= ' ')
{
strGirder.AppendChar(ch);
}
while(fin.get(ch),ch!= ' ')
{
strPier.AppendChar(ch);
}
while(fin.get(ch),ch!= ' ')
{
strScrew.AppendChar(ch);
}
while(fin.get(ch),ch!= ' ')
{
strDate.AppendChar(ch);
}
DoSomething();
char str[100]
fin.getline(str, '\n ');
}
//于是我读到下一行,继续读,可是这个循环只执行一次,
//不能读第二行了,请问为什么啊。
------解决方案--------------------
哎
string strGirder, strPier, strScrew, strDate, other;
;
while(fin)
{
fin < <strGirder < < strPier < < strScrew < < strDate;
DoSomething();
getline(fin, other);
}
------解决方案--------------------
1.最外层用while,在while用!fin.eof()判断
2.首先读取一行fin.getline();
3.将getline得到的一行数据放到字符串流中
4.循环9次,每次用> > 将字符串流中的内容分别打入到相应的string中。
具体字符串流我记不清了可能是sstream.h里面的stringstream吧,查查msdn有现成的东西。
我想读取文件的1234列,各列以空格隔开,我的思想是读完4列后,读到下一行,可是并不是想像的那样,
CString strGirder;
CString strPier;
CString strScrew;
CString strDate;
while(fin)
{
while(fin.get(ch),ch!= ' ')
{
strGirder.AppendChar(ch);
}
while(fin.get(ch),ch!= ' ')
{
strPier.AppendChar(ch);
}
while(fin.get(ch),ch!= ' ')
{
strScrew.AppendChar(ch);
}
while(fin.get(ch),ch!= ' ')
{
strDate.AppendChar(ch);
}
DoSomething();
char str[100]
fin.getline(str, '\n ');
}
//于是我读到下一行,继续读,可是这个循环只执行一次,
//不能读第二行了,请问为什么啊。
------解决方案--------------------
哎
string strGirder, strPier, strScrew, strDate, other;
;
while(fin)
{
fin < <strGirder < < strPier < < strScrew < < strDate;
DoSomething();
getline(fin, other);
}
------解决方案--------------------
1.最外层用while,在while用!fin.eof()判断
2.首先读取一行fin.getline();
3.将getline得到的一行数据放到字符串流中
4.循环9次,每次用> > 将字符串流中的内容分别打入到相应的string中。
具体字符串流我记不清了可能是sstream.h里面的stringstream吧,查查msdn有现成的东西。