c++中如何控制打开文件的名字

一个循环,每次打开不同的名字,比如打开book1.txt,book2.txt,...book20.txt如何能够不定义二十个变量而打开这么多个文件... 一个循环,每次打开不同的名字,比如打开book1.txt,book2.txt,...book20.txt
如何能够不定义二十个变量而打开这么多个文件
展开
 我来答
hnylsjwyy
2009-11-26
知道答主
回答量:27
采纳率:0%
帮助的人:25.2万
展开全部
前提是你的文件名有规律:
定义几个字符串常量,比如 const char* szBook = "book";
const char* szTxt = ".txt";

最后用一个临时字符串变量放当前要打开的文件名,比如
char* szTmp = new char[32];
memset(szTmp, 0, 32);//清空
strcat(szTmp, szBook);
strcat(szTmp, "1");//后面的1就是有规律性的数字
strcat(szTmp, szTxt);
好了,这个文件名拼接好了。如果有路径的话,再拼个路径。

如果文件名没规律,那只能有多少就定义多少了。
sylecn
2009-11-26 · TA获得超过2991个赞
知道大有可为答主
回答量:1169
采纳率:57%
帮助的人:706万
展开全部
//大致是这样

#include <sstring>
#include <fstring>

std::string int_to_str(const int& i)
{
std::ostringstream out;
out << i;
return out.str();
}

int main()
{
for (int i = 1; i <= 20; i++) {
string this_file("book" + int_to_str(i));
std::ifstream in(this_file.c_str());
// do something on in, for example
in >> n >> str;
in.close();
}

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yangruihan123
2009-11-29 · TA获得超过314个赞
知道答主
回答量:355
采纳率:0%
帮助的人:246万
展开全部
放在一个CString str[20]里吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
孛恬鄂元凯
2019-03-25 · TA获得超过1095个赞
知道小有建树答主
回答量:1749
采纳率:100%
帮助的人:8万
展开全部
//大致是这样
#include
<sstring>
#include
<fstring>
std::string
int_to_str(const
int&
i)
{
std::ostringstream
out;
out
<<
i;
return
out.str();
}
int
main()
{
for
(int
i
=
1;
i
<=
20;
i++)
{
string
this_file("book"
+
int_to_str(i));
std::ifstream
in(this_file.c_str());
//
do
something
on
in,
for
example
in
>>
n
>>
str;
in.close();
}
return
0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式