读书人

关于sscanf的一个小疑点

发布时间: 2012-02-12 17:16:33 作者: rapoo

关于sscanf的一个小问题
mfc下的,主要是onok函数
void CYAYA37Dlg::OnOK()
{
char buf[SZ];
CString str1[5];
CString str2[5];
CString str3[5];
CString str4[5];
CString str5[5];

int i=0;
{
ifstream in( "mytext.txt ");
while(in.getline(buf,SZ))
{
sscanf(buf, "%s %s %s %s %s\n ",str1[i],str2[i],str3[i],str4[i],str5[i]);
i++;
}
}

---------------------
我是想读一个mytext的文件,内容如下
ARON1 ARON2 ARON3 ARON4 ARON5
QQ1 QQ2 QQ3 QQ4 QQ5
AUNT1 AUNT2 AUNT3 AUNT4 AUNT5
MAG1 MAG2 MAG3 MAG4 MAG5
读入到str1[i],str2[i],str3[i],str4[i],str5[i]里,但是我发现用cstring的str1就读出的每个str1[i],str2[i],str3[i],str4[i],str5[i]都是最后一个字符串,如
str1[1],str2[1],str3[1],str4[1],str5[1]都是 "QQ5 ",但是如果我用char str1[6],这种形式来定义就没有问题,请各位指教,谢谢

[解决办法]
这样读取更方便啊
in> > str1[i];
in> > str2[i];
in> > str3[i];
in> > str4[i];
in> > str5[i];

[解决办法]
CString是一个类,而sscanf是针对字符串来操作的,因此定义成字符串类型就可以了

读书人网 >C++

热点推荐