for循环问题

[复制链接]
1738|4
 楼主| baidudz 发表于 2012-6-18 22:43 | 显示全部楼层 |阅读模式
有一批文件。编号分别为A21G_10001.txt A21G_310-10002.txt A21G_310-10003.txt 直到 A21G_310-10100.txt.
单个读取文件:ifstream fin("A21G_310-10001.txt"),在进行其他操作,可以实现。
现在想写个for循环,对所有文件进行操作,循环如下:
for(int i=1; i<101; ++i)
{
...
ifstream fin("A21G_310-10000+i.txt") 或者 ifstream fin("A21G_310-(10000+i).txt")
...
}

编译通过,但是却不能得到单个读取时的正确结果,请问是怎么回事,谢谢!
火箭球迷 发表于 2012-6-18 22:59 | 显示全部楼层
ifstream fin("A21G_310-10000+i.txt")  
其实你这样打开的文件应该是A21G_310-10000+i.txt。
你需要使用sprintf(name,"A21G_310-1000%d",i);转换你的文件名。
gxgclg 发表于 2012-6-18 23:11 | 显示全部楼层
ifstream(string(“A21G_310-10000”+i+“.txt”).c_str());
这样试一下。
pkat 发表于 2012-6-18 23:20 | 显示全部楼层
sprintf(name,"A21G_310-1000%d",i);

在这句前面可以加上
char name[100];
memset(name, 0, 100);

在这句的后面加上:
ifstream fin(name);
无冕之王 发表于 2012-6-18 23:23 | 显示全部楼层
"A21G_310-10000+i.txt"这个文件的名称就是 A21G_310-10000+i.txt。
sprintf(). swprintf().
您需要登录后才可以回帖 登录 | 注册

本版积分规则

239

主题

2284

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部